C#文件操作
时间:2011-03-28 来源:韩天伟
本文的内容包括:
1,文件基本操作:搜索,创建,复制,剪切,删除,重命名。
2,File和FileInfo
3,搜索:文件名和子目录
4,复制的方法:File和FileInfo
5,剪切:同盘和不同盘
6,重命名:利用FileInfo.MoveTo实现重命名。
7,删除:到回收站和彻底删除。
8,多线程时遇到的问题,以及解决办法。
文件的基本操作包括搜索,创建,复制,剪切,删除,重命名等。在C#中可以使用File的一系列静态方法,也可以是FileInfo对象的方法来达到同样的功能。关于File和FileInfo的概念就不多说了,到处都有,当然官方的是最权威的。这里重点介绍每个操作的一些注意点。
搜索
搜索文件可以用Directory.GetFiles方法,
public static string[] GetFiles ( string path, string searchPattern, SearchOption searchOption )
path:在哪个路径下搜索。
searchPattern:搜索的文件特征是什么。如果是jpg文件,则是”*.jpg”。
SearchOption:AllDirectories和TopDirectoryOnly之一。AllDirectories表示在搜索操作中包括当前目录和所有子目录。TopDirectoryOnly表示仅在搜索中包括当前目录。
也可以使用DirectoryInfo对象的方法来达到同样的功能。
复制
复制文件使用File.Copy()或FileInfo.CopyTo().
剪切
剪切文件使用File.Move()或FileInfo.MoveTo()。
需要说明的是,如果在同一个逻辑磁盘进行剪切操作,实际上只是将文件的索引进行了更改,而文件实际存储的磁盘物理位置并没有发生变化。
重命名
可以通过File.Move()或者FileInfo的MoveTo (string destFileName)来实现,destFileName就是新的文件名。同一目录下的重命名,也可以实现。
删除
删除文件使用FIle.Delete()或者FileInfo.Delete()。这个方法是将文件从磁盘直接删除,有没有选项是删除到回收站呢?
多线程下的文件操作
如果多个线程同时操作一个文件,会出现类似“文件正被另一进程占用”的异常。此时应严格隔离线程间对文件占用的冲突。