WEB开发网
开发学院WEB开发ASP.NET C# 对文件与文件夹的操作删除、移动与复制 阅读

C# 对文件与文件夹的操作删除、移动与复制

 2012-11-14 15:25:09 来源:WEB开发网   
核心提示: 在.Net中,对文件(File)和文件夹(Folder)的操作可以使用File类和Directory类,C# 对文件与文件夹的操作删除、移动与复制,也可以使用FileInfo类和DirectoryInfo类,文件夹(Folder)是只在Windows操作系统中使用的名词,包括文件的创建日期,文件的大小等等,在操作系统

 在.Net中,对文件(File)和文件夹(Folder)的操作可以使用File类和Directory类,也可以使用FileInfo类和DirectoryInfo类。文件夹(Folder)是只在Windows操作系统中使用的名词。在操作系统的理论中,人们更习惯于使用目录(Directory)这个名词。或许微软为了有朝一日将.Net移植到其他的操作系统中(实际上也有很多人也在做着这个项目),所以还是以Directory来命名操作文件夹的类。

File类和Directory类都是静态类。使用它们的好处是不需要初始化对象。如果你对某一个文件或文件夹只进行一次操作,那你最好使用该静态类的静态方法,比如File.Move,File.Delete等等。如果你需要对一个文件或文件夹进行多次操作,那最好还是使用FileInfo和DirectoryInfo类。因为File类和Directory是静态类,所以你每次对一个文件或文件夹进行操作之前,它们都需要对该文件或文件夹进行一些检查,比如authentication。如果使用FileInfo类和DirectoryInfo类,只在初始化类的对象时进行相关的检查工作,也就是说只需要做一次,所以如果你需要对某个文件或文件夹进行多次操作,那最好使用FileInfo类和DirectoryInfo类。

下面的这段代码演示了如何获得文件夹的信息,包括获得文件夹下的子文件夹,以及文件夹下的文件。这里使用了DirectoryInfo 类来完成,当然你也可以使用Directory静态类。


void DisplayFolder()
{
string folderFullName = @"c:\temp";
DirectoryInfo theFolder = new DirectoryInfo(folderFullName);
if (!theFolder.Exists)
throw new DirectoryNotFoundException("Folder not found: " + folderFullName);

// list all subfolders in folder
Console.WriteLine("Subfolders:");
foreach (DirectoryInfo subFolder in theFolder.GetDirectories())
{
Console.WriteLine(subFolder.Name);
}

// list all files in folder
Console.WriteLine();
Console.WriteLine("Files:");
foreach (FileInfo file in theFolder.GetFiles())
{
Console.WriteLine(file.Name);
}
}

下面演示了如何使用FileInfo类来获得文件的相关信息,包括文件的创建日期,文件的大小等等。当然你同样也可以使用File静态类来完成。


void DisplayFileInfo()
{
string folderFullName = @"c:\temp";
string fileName = "New Text Document.txt";
string fileFullName = Path.Combine(folderFullName, fileName);
FileInfo theFile = new FileInfo(fileFullName);
if (!theFile.Exists)
throw new FileNotFoundException("File not found: " + fileFullName);
Console.WriteLine(string.Format("Creation time: {0}", theFile.CreationTime.ToString()));
Console.WriteLine(string.Format("Size: {0} bytes", theFile.Length.ToString()));
}

下面的代码分别使用了File类和FileInfo类来演示如何删除文件


void DeleteFile1()
{
string fileToBeDeleted = @"c:\temp\New Text~ Document (3).txt";
if (File.Exists(fileToBeDeleted))
{
File.Delete(fileToBeDeleted);
}
}

void DeleteFile2()
{
string fileToBeDeleted = @"c:\temp\New Text~ Document (3).txt";
FileInfo file = new FileInfo(fileToBeDeleted);

1 2  下一页

Tags:文件 文件夹 操作

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接