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先看看Directory类
<textarea cols="50" rows="15" name="code" class="c-sharp">class Program { static void Main(string[] args) { Directory.CreateDirectory("D:/test"); Console.WriteLine(Directory.GetCreationTime("D:/test")); /* 在 searchPattern 中允许使用以下通配说明符。 通配符描述: * 零个或多个字符. ? 正好一个字符。 通配说明符以外的字符表示它们自己。例如,searchPattern 字符串“*t”搜索 path 中所有以字母“t”结尾的名称。searchPattern 字符串 “s*”搜索 path 中所有以字母“s”开头的名称。 扩展名恰好是三个字符时的 searchPattern 匹配行为与扩展名多于三个字符时不同。恰好为三个字符的 searchPattern 返回扩展名为三个 或三个以上字符的文件。一个字符、两个字符或三个以上字符的 searchPattern 只返回扩展名恰好等于该长度的文件。 以下列表显示了 searchPattern 参数的不同长度的行为: “*.abc”返回扩展名为 .abc、.abcd、.abcde、.abcdef 等的文件。 “*.abcd”只返回扩展名为 .abcd 的文件。 “*.abcde”只返回扩展名为 .abcde 的文件。 “*.abcdef”只返回扩展名为 .abcdef 的文件。 SearchOption 值之一,指定搜索操作应包括所有子目录还是仅包括当前目录。 */ foreach (var item in Directory.GetDirectories("C:/","c*",SearchOption.TopDirectoryOnly)) { Console.WriteLine(item); } foreach (var item in Directory.GetLogicalDrives()) Console.WriteLine(item); //与 Directory.GetDirectories类似,不过找文件而已。 //Directory.GetFiles(); Console.WriteLine( Directory.GetParent("D:/test").Name ); //注意,这里第二个目录居然是不能存在的,否则报异常,这个是把前面目录的下面内容移到第二个目录里面去,并把第一个目录删除 //Directory.Move("D:/test","D:/test1"); } }</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("D:/test2"); //注意这个类只是代表操作系统抽象意义上的目录,并不一定是实际存在的目录。 info.Create(); info.CreateSubdirectory("as/ss"); 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 ? "true" : "false" ); 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("D:/test3"); //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 = "D:/a.txt"; const string anotherFile = "D:/a1.txt"; if (!File.Exists(fileName)) { File.Create(fileName, 1024); } File.AppendAllText(fileName, "xuxu"); 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("D:/a.txt"); //StreamReader sr = File.OpenText(fileName); //FileStream fs = File.Open(fileName,FileMode.Append); //FileStream fr = File.OpenRead(fileName); //FileStream fw = File.OpenWrite(fileName); //File.Delete("D:/a.txt"); //File.Move(fileName,"D:/test4/b.txt"); } }</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 = "D:/a.txt"; 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("D:/a1.txt"); 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("D:/b.txt"); //info.Delete(); } }</textarea>