刚开始学习IO流我们首先接触到的是File类和Directory类,这两个类是静态类,他们的方法也都是静态方法,因此调用的时候直接用类来调用。
同时,又有FileInfo类和DirectoryInfo类,这两个类是非静态类,因此调用FileInfo类和DirectoryInfo类中的方法需要用对象来调用,FileInfo类和DirectoryInfo类里面的方法也分别与File类和Directory类中的方法差不多。下面我们来看看它们分别是如何创建目录和文件的。
1.Directory类创建目录:
1 /*静态类(Directory)创建目录*/ 2 protected void DirClick(object sender, EventArgs e) 3 { 4 5 /*给定文件目录。其中@可将转义字符(\)当做普通字符对待*/ 6 string D_name = @"F:\Test"; 7 8 9 /*若文件夹已存在,则给出提示信息,否则创建该目录*/ 10 if (Directory.Exists(D_name)) 11 { 12 /*向页面注册JS事件*/ 13 ClientScript.RegisterStartupScript(this.GetType(), "fail_message", "<script>alert('文件夹已存在!')</script>"); 14 15 } 16 else 17 { 18 19 Directory.CreateDirectory(D_name); 20 21 ClientScript.RegisterStartupScript(this.GetType(), "fail_message", "<script>alert('创建成功!')</script>"); 22 23 } 24 25 }
2.File类创建文件:
1 /*静态类(File)创建文件*/ 2 protected void FileClick(object sender, EventArgs e) 3 { 4 5 /*给定文件目录及文件名*/ 6 string File_name = @"F:\123.txt"; 7 8 /*判断,若文件已存在,则给出提示信息,否则创建该文件*/ 9 if (File.Exists(File_name)) 10 { 11 /*向页面注册JS事件*/ 12 ClientScript.RegisterStartupScript(this.GetType(), "fail_message", "<script>alert('文件已存在!')</script>"); 13 14 } 15 else 16 { 17 /*File.Create(string File_name)返回的是FileStream类型 18 *这里我们需要关闭关闭当前文件流并释放与之关联的所有资源 19 *FileStream为我们提供了该方法 20 */ 21 22 /* 23 * 注意:创建文件流后,无论是读取还是写入操作,最后必须用Close方法关闭文件流! 24 * 这样做的目的一方面是释放文件操作所占用的系统资源,另一方面避免文件有出现无法预料的结果。 25 */ 26 27 FileStream filestream; 28 29 filestream = File.Create(File_name); 30 31 32 filestream.Close(); 33 34 ClientScript.RegisterStartupScript(this.GetType(), "fail_message", "<script>alert('创建成功!')</script>"); 35 } 36 37 }
以上是静态类File类和Directory类分别创建文件和目录的过程,要注意的是创建文件流后一定要记得关闭文件流。
FileInfo类和DirectoryInfo类分别创建文件和目录的过程与上面类似,只是需要创建FileInfo类和DirectoryInfo类的对象,用对象来操作。具体过程就不再赘述。