@chanvee
2014-06-12T20:54:36.000000Z
字数 2783
阅读 3481
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原稿。