[关闭]
@chanvee 2014-06-12T20:54:36.000000Z 字数 2783 阅读 3464

初识c#之文件操作

C#


C#对文件,文件夹的操作我觉得还是比较好用的,这里记录一些常见的操作,更多的操作可以参见File 类Directory 类Path类。

C# File 类常用操作


创建与删除文件

C#的File类主要用于提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream 对象。它的大多数操作都是根据路径这个属性来操作的,比如说我们想要在路径C:\\user\\Desktop下创建一个名为test.txt的文件我们首先就需要指定这个路径,然后在利用File类的.Create()方法来创建,代码如下:

  1. string filepath = "C:\\user\\Desktop\\test.txt";
  2. File.Create(filePath);

这样我们就在指定的目录下面产生了一个指定名称的文件。同理,文件的删除也需要制定需要删除文件的路径,利用.Delete()方法来实现文件的删除,代码如下:

  1. string filepath = "C:\\user\\Desktop\\test.txt";
  2. File.Delete(filePath);

获得文件的一些属性

有时候我们想要获得文件的一些属性,比如得到文件的创建时间,最后访问时间、最后修改时间等,代码如下:

  1. string filepath = "C:\\user\\Desktop\\test.txt";
  2. DateTime time1 = File.GetCreationTime(filepath);
  3. DateTime time2 = File.GetLastAccessTime(filepath);
  4. DateTime time3 = File.GetLastWriteTime(filepath);

另外值得一提的是,可以通过C#修改文件的只读和隐藏属性,其代码如下:

  1. string filepath = "C:\\user\\Desktop\\test.txt";
  2. FileInfo fi = new FileInfo(filepath); //创建一个file的实例
  3. if ((fi.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) //如果文件的属性为只读
  4. {
  5. fi.Attributes = fi.Attributes & ~FileAttributes.ReadOnly; //修改文件属性为非只读
  6. }
  7. if ((fi.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) //如果文件的属性为隐藏
  8. {
  9. fi.Attributes = fi.Attributes & ~FileAttributes.Hidden; //修改文件属性为非隐藏
  10. }
  11. //相反的操作
  12. //增加只读属性
  13. fi.Attributes = fi.Attributes | FileAttributes.ReadOnly;
  14. //增加隐藏属性
  15. fi.Attributes = fi.Attributes | FileAttributes.Hidden;

判断文件是否存在、文件复制和重命名

判断文件是否存在以及实现文件的复制的方法与上面类似,这里就不再赘述,其代码如下:

  1. string filepath1 = "C:\\user\\Desktop\\test.txt";
  2. string filepath2 = "C:\\user\\Document\\test.txt";
  3. string filepath3 = "C:\\user\\Desktop\\mytest.txt"
  4. if (File.Exists(filepath1)) //如果文件存在
  5. {
  6. File.Copy(filepath1, filepath2); //不允许同名覆盖
  7. File.Copy(filepath1, filepath2true); //允许同名覆盖
  8. File.Move(filepath1, filepath3); //实现文件的重命名
  9. }

C# Directory类的常用操作


常见操作

Directory类提供公开用于创建、移动和枚举通过目录和子目录的静态方法。它的常见操作几乎与file类一致,只需将File改为Directory而已,总结代码如下:

  1. string di_path = "C:\\user\\Desktop\\Test";
  2. Directory.Create(di_path);
  3. Directory.Delete(di_path);
  4. DateTime time1 = Directory.GetCreationTime(di_path);
  5. DateTime time2 = Directory.GetLastAccessTime(di_path);
  6. DateTime time3 = Directory.GetLastWriteTime(di_path);
  7. DirectoryInfo fi = new DirectoryInfo(di_path); //创建一个Directory的实例
  8. .....以此类推

获取文件夹大小

值得一提的是获取文件夹大小的方法,代码如下:

  1. long len = 0;
  2. string di_path = "C:\\user\\Desktop\\Test";
  3. //定义一个DirectoryInfo对象
  4. DirectoryInfo di = new DirectoryInfo(di_path);
  5. //通过GetFiles方法,获取di目录中的所有文件的大小
  6. foreach (FileInfo fi in di.GetFiles())
  7. {
  8. len += fi.Length; //fi.Length表示获取文件的大小
  9. }

C# Path类的常用操作


C#的Path类主要对包含文件或目录路径信息的 String 实例执行操作。 这些操作是以跨平台的方式执行的。它的常用操作代码如下:

  1. string path = "C:\\user\\Desktop\\Test\\test.txt";
  2. Path.GetFileName(path) //获取文件名(带扩展名)
  3. Path.GetFileNameWithoutExtension(path) //获取文件名(不带扩展名)
  4. Path.GetExtension(path) //获取文件扩展名
  5. Path.GetDirectoryName(path) //获取该路径下的目录信息,本例中的结果为"C:\\user\\Desktop\\Test"
  6. Path.Combine(Path.GetDirectoryName(path), Path.GetFileName(path)) //将两个字符串组合成一个路径,本例中的结果即与path一样

本文Markdown原稿

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注