流(1)--文件

For many applications,data is held in memory and accessed as if it were a three-dimensional solid;when you need to access a variable or an object ,use its name and it is available to you.When you want to move your data into or out a file,across the network,or over the Internet,however,your data must be streamed .In a stream,data flows much like bubbles in a stream of water.

 

1.File and Directories

File类代表一个文件,Directory类代表一个目录。以下是继承层次,注意了Directory,File全是静态的方法。而DirectoryInfo和FileInfo全是实例方法,这两个类从FileSystemInfo继承了大量属性和方法提供了文件或者目录的信息。

流(1)--文件_第1张图片

1.1先看看Directory类

<textarea cols="50" rows="15" name="code" class="c-sharp">class Program { static void Main(string[] args) { Directory.CreateDirectory(&quot;D:/test&quot;); Console.WriteLine(Directory.GetCreationTime(&quot;D:/test&quot;)); /* 在 searchPattern 中允许使用以下通配说明符。 通配符描述: * 零个或多个字符. ? 正好一个字符。 通配说明符以外的字符表示它们自己。例如,searchPattern 字符串&ldquo;*t&rdquo;搜索 path 中所有以字母&ldquo;t&rdquo;结尾的名称。searchPattern 字符串 &ldquo;s*&rdquo;搜索 path 中所有以字母&ldquo;s&rdquo;开头的名称。 扩展名恰好是三个字符时的 searchPattern 匹配行为与扩展名多于三个字符时不同。恰好为三个字符的 searchPattern 返回扩展名为三个 或三个以上字符的文件。一个字符、两个字符或三个以上字符的 searchPattern 只返回扩展名恰好等于该长度的文件。 以下列表显示了 searchPattern 参数的不同长度的行为: &ldquo;*.abc&rdquo;返回扩展名为 .abc、.abcd、.abcde、.abcdef 等的文件。 &ldquo;*.abcd&rdquo;只返回扩展名为 .abcd 的文件。 &ldquo;*.abcde&rdquo;只返回扩展名为 .abcde 的文件。 &ldquo;*.abcdef&rdquo;只返回扩展名为 .abcdef 的文件。 SearchOption 值之一,指定搜索操作应包括所有子目录还是仅包括当前目录。 */ foreach (var item in Directory.GetDirectories(&quot;C:/&quot;,&quot;c*&quot;,SearchOption.TopDirectoryOnly)) { Console.WriteLine(item); } foreach (var item in Directory.GetLogicalDrives()) Console.WriteLine(item); //与 Directory.GetDirectories类似,不过找文件而已。 //Directory.GetFiles(); Console.WriteLine( Directory.GetParent(&quot;D:/test&quot;).Name ); //注意,这里第二个目录居然是不能存在的,否则报异常,这个是把前面目录的下面内容移到第二个目录里面去,并把第一个目录删除 //Directory.Move(&quot;D:/test&quot;,&quot;D:/test1&quot;); } }</textarea>

1.2 DirectoryInfo

<textarea cols="50" rows="15" name="code" class="c-sharp">class Program { //D表示继承 static void Main(string[] args) { DirectoryInfo info = new DirectoryInfo(&quot;D:/test2&quot;); //注意这个类只是代表操作系统抽象意义上的目录,并不一定是实际存在的目录。 info.Create(); info.CreateSubdirectory(&quot;as/ss&quot;); Console.WriteLine(info.Attributes);//也可以赋值 D Console.WriteLine(info.CreationTime);//可以赋值 D Console.WriteLine(info.Extension); // D Console.WriteLine(info.FullName); // D Console.WriteLine(info.LastAccessTime); //D Console.WriteLine(info.LastWriteTime); //D info.Refresh(); //D Console.WriteLine(info.Name); Console.WriteLine(info.Parent); Console.WriteLine(info.Root); Console.WriteLine(info.Exists ? &quot;true&quot; : &quot;false&quot; ); foreach (var item in info.GetDirectories()) Console.WriteLine(item.FullName); foreach (var item in info.GetFiles()) Console.WriteLine(item.FullName); foreach (var item in info.GetFileSystemInfos()) Console.WriteLine(item.FullName); info.MoveTo(&quot;D:/test3&quot;); //info.Delete(true); } }</textarea>

1.3File

<textarea cols="50" rows="15" name="code" class="c-sharp">class Program { static void Main(string[] args) { const string fileName = &quot;D:/a.txt&quot;; const string anotherFile = &quot;D:/a1.txt&quot;; if (!File.Exists(fileName)) { File.Create(fileName, 1024); } File.AppendAllText(fileName, &quot;xuxu&quot;); File.Copy(fileName, anotherFile); FileAttributes attrs = File.GetAttributes(fileName); File.SetAttributes(fileName, FileAttributes.Archive); File.GetCreationTime(fileName); File.SetCreationTime(fileName, System.DateTime.Now); File.GetLastAccessTime(fileName); File.SetLastAccessTime(fileName, System.DateTime.Now); File.GetLastWriteTime(fileName); File.SetLastAccessTime(fileName, System.DateTime.Now); //StreamWriter sw = File.AppendText(fileName); //StreamWriter sw = File.CreateText(&quot;D:/a.txt&quot;); //StreamReader sr = File.OpenText(fileName); //FileStream fs = File.Open(fileName,FileMode.Append); //FileStream fr = File.OpenRead(fileName); //FileStream fw = File.OpenWrite(fileName); //File.Delete(&quot;D:/a.txt&quot;); //File.Move(fileName,&quot;D:/test4/b.txt&quot;); } }</textarea>

 

1.4 FileInfo

<textarea cols="50" rows="15" name="code" class="c-sharp"> class Program { static void Main(string[] args) { const string FILE_NAME = &quot;D:/a.txt&quot;; FileInfo info = new FileInfo(FILE_NAME); if (!info.Exists) info.Create(); Console.WriteLine(info.Attributes); info.Attributes = FileAttributes.Archive; //D Console.WriteLine(info.CreationTime); info.CreationTime = System.DateTime.Now;//D Console.WriteLine(info.Extension);//D Console.WriteLine(info.FullName);//D Console.WriteLine(info.LastAccessTime);//D Console.WriteLine(info.LastWriteTime);//D Console.WriteLine(info.Length); Console.WriteLine(info.Name); info.CopyTo(&quot;D:/a1.txt&quot;); Console.WriteLine(info.Directory.FullName); //FileStream fo = info.Open(FileMode.Append, FileAccess.Write); //StreamWriter sw = info.AppendText(); //FileStream fr = info.OpenRead(); //StreamReader rd = info.OpenText(); //FileStream fw = info.OpenWrite(); //info.MoveTo(&quot;D:/b.txt&quot;); //info.Delete(); } }</textarea>

你可能感兴趣的:(流(1)--文件)