@chanvee
2014-06-12T12:54:36.000000Z
字数 2783
阅读 3990
C#
C#对文件,文件夹的操作我觉得还是比较好用的,这里记录一些常见的操作,更多的操作可以参见File 类、Directory 类和Path类。
C#的File类主要用于提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream 对象。它的大多数操作都是根据路径这个属性来操作的,比如说我们想要在路径C:\\user\\Desktop下创建一个名为test.txt的文件我们首先就需要指定这个路径,然后在利用File类的.Create()方法来创建,代码如下:
string filepath = "C:\\user\\Desktop\\test.txt";File.Create(filePath);
这样我们就在指定的目录下面产生了一个指定名称的文件。同理,文件的删除也需要制定需要删除文件的路径,利用.Delete()方法来实现文件的删除,代码如下:
string filepath = "C:\\user\\Desktop\\test.txt";File.Delete(filePath);
有时候我们想要获得文件的一些属性,比如得到文件的创建时间,最后访问时间、最后修改时间等,代码如下:
string filepath = "C:\\user\\Desktop\\test.txt";DateTime time1 = File.GetCreationTime(filepath);DateTime time2 = File.GetLastAccessTime(filepath);DateTime time3 = File.GetLastWriteTime(filepath);
另外值得一提的是,可以通过C#修改文件的只读和隐藏属性,其代码如下:
string filepath = "C:\\user\\Desktop\\test.txt";FileInfo fi = new FileInfo(filepath); //创建一个file的实例if ((fi.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) //如果文件的属性为只读{fi.Attributes = fi.Attributes & ~FileAttributes.ReadOnly; //修改文件属性为非只读}if ((fi.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) //如果文件的属性为隐藏{fi.Attributes = fi.Attributes & ~FileAttributes.Hidden; //修改文件属性为非隐藏}//相反的操作//增加只读属性fi.Attributes = fi.Attributes | FileAttributes.ReadOnly;//增加隐藏属性fi.Attributes = fi.Attributes | FileAttributes.Hidden;
判断文件是否存在以及实现文件的复制的方法与上面类似,这里就不再赘述,其代码如下:
string filepath1 = "C:\\user\\Desktop\\test.txt";string filepath2 = "C:\\user\\Document\\test.txt";string filepath3 = "C:\\user\\Desktop\\mytest.txt"if (File.Exists(filepath1)) //如果文件存在{File.Copy(filepath1, filepath2); //不允许同名覆盖File.Copy(filepath1, filepath2,true); //允许同名覆盖File.Move(filepath1, filepath3); //实现文件的重命名}
Directory类提供公开用于创建、移动和枚举通过目录和子目录的静态方法。它的常见操作几乎与file类一致,只需将File改为Directory而已,总结代码如下:
string di_path = "C:\\user\\Desktop\\Test";Directory.Create(di_path);Directory.Delete(di_path);DateTime time1 = Directory.GetCreationTime(di_path);DateTime time2 = Directory.GetLastAccessTime(di_path);DateTime time3 = Directory.GetLastWriteTime(di_path);DirectoryInfo fi = new DirectoryInfo(di_path); //创建一个Directory的实例.....以此类推
值得一提的是获取文件夹大小的方法,代码如下:
long len = 0;string di_path = "C:\\user\\Desktop\\Test";//定义一个DirectoryInfo对象DirectoryInfo di = new DirectoryInfo(di_path);//通过GetFiles方法,获取di目录中的所有文件的大小foreach (FileInfo fi in di.GetFiles()){len += fi.Length; //fi.Length表示获取文件的大小}
C#的Path类主要对包含文件或目录路径信息的 String 实例执行操作。 这些操作是以跨平台的方式执行的。它的常用操作代码如下:
string path = "C:\\user\\Desktop\\Test\\test.txt";Path.GetFileName(path) //获取文件名(带扩展名)Path.GetFileNameWithoutExtension(path) //获取文件名(不带扩展名)Path.GetExtension(path) //获取文件扩展名Path.GetDirectoryName(path) //获取该路径下的目录信息,本例中的结果为"C:\\user\\Desktop\\Test"Path.Combine(Path.GetDirectoryName(path), Path.GetFileName(path)) //将两个字符串组合成一个路径,本例中的结果即与path一样
本文Markdown原稿。