.net对文件的操作之对文件目录的操作
.NET 提供一个静态File类用于文件的操作,下面列出它的主要操作方法。
返回值类型 | 方法名称 | 说明 |
bool | Exists(string path) | 用于检查指定文件是否存在 |
void | Copy(string sourceFilePath,string destinationFilePath) | 将指定路径的源文件中的内容复制到目标文件中,如果目标文件不存在,则在指定的路径中新建一个文件 |
void | Move(string sourceFileName,string destFileName) | 将指定文件移到一个新的路径 |
void | Delete(string path) | 删除指定的文件,如果指定的文件不存在,则不引发异常 |
示例:
//C#中对“\”需要转义,“\\”转义为\,或者在前面加@
static void Main(string[] args) { string path = @"F:\test.txt"; //文件存在检测 if (File.Exists(path)) { Console.WriteLine("文件存在"); //文件复制 File.Copy(path,@"F:\b.txt"); if (File.Exists(@"F:\b.txt")) { Console.WriteLine("文件复制成功!"); } //文件移动 File.Move(path, "F:\\db\\c.txt"); if (File.Exists("F:\\db\\c.txt")) { Console.WriteLine("文件移动成功"); } //文件删除 File.Delete(@"F:\b.txt"); if (!File.Exists(@"F:\b.txt")) { Console.WriteLine("文件删除成功!"); } } Console.ReadKey(); }
操作目录(文件夹)的静态类:Directory
返回值类型 | 方法名称 | 说明 |
bool | Exists(string path) | 用于检查文件夹在磁盘上是否存在 |
void | Move(string sourceDirName,string destDirName) | 用于将文件或目录及其内容移到新位置 |
void | Delete(string path,bool recursive) | 删除指定目录,如果recursive的值为true,则删除子目录中的所有目录内容;如果要删除的目录下有内容而没有设置recursive为true则会抛出异常! |
实例类:FileInfo
属性 说明
Exists 用于检查指定文件是否存在,返回一个布尔值
Extension 获取表示扩展名部分的字符串,带.
Name 获取文件名
FullName 获取目录或文件的完整目录
返回值类型 | 方法 | 说明 |
FileInfo | CopyTo(string) | 将现有文件复制到新文件,不允许覆盖现有文件 |
void | Delete() | 永久删除文件 |
void | MoveTo(string) | 将指定文件移到新位置(string) |
DirectoryInfo类和Directory类类似
//目录 DirectoryInfo di = new DirectoryInfo(@"F:\"); //返回传入目录的子目录 DirectoryInfo[] dirs = di.GetDirectories(); //返回传入目录下的文件列表 FileInfo[] files = di.GetFiles();
File类和FileInfo类都能操作文件,什么样的情况更适合哪个类?
File类的静态方法会在使用时进行安全检查,所以如果想多次使用某个文件对象,可以考虑FileInfo类。Directory和DirectoryInfo一样的道理。
附上文件操作做的小项目截图(使用了TreeView和ListView):