当前位置:  编程技术>.net/c#/asp.net

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

    来源: 互联网  发布时间:2014-10-15

    本文导语:  在.Net中,对文件(File)和文件夹(Folder)的操作可以使用File类和Directory类,也可以使用FileInfo类和DirectoryInfo类。文件夹(Folder)是只在Windows操作系统中使用的名词。在操作系统的理论中,人们更习惯于使用目录(Directory)...

在.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:tempNew Text~ Document (3).txt";
if (File.Exists(fileToBeDeleted))
{
File.Delete(fileToBeDeleted);
}
}
void DeleteFile2()
{
string fileToBeDeleted = @"c:tempNew Text~ Document (3).txt";
FileInfo file = new FileInfo(fileToBeDeleted);
if (file.Exists)
{
file.Delete();
}
}

下面的代码分别使用了Directory类和DirectoryInfo类来演示如何删除文件夹
代码如下:

void DeleteFolder1()
{
string folderToBeDeleted = @"c:temptest";
if (Directory.Exists(folderToBeDeleted))
{
// true is recursive delete:
Directory.Delete(folderToBeDeleted, true);
}
}

void DeleteFolder2()
{
string folderToBeDeleted = @"c:temptest";
DirectoryInfo folder = new DirectoryInfo(folderToBeDeleted);
if (folder.Exists)
{
folder.Delete(true);
}
}

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

void MoveFile1()
{
string fileToMove = @"c:tempNew Text Document.txt";
string fileNewDestination = @"c:temptest.txt";
if (File.Exists(fileToMove) && !File.Exists(fileNewDestination))
{
File.Move(fileToMove, fileNewDestination);
}
}

void MoveFile2()
{
string fileToMove = @"c:tempNew Text Document.txt";
string fileNewDestination = @"c:temptest.txt";
FileInfo file = new FileInfo(fileToMove);
if (file.Exists)
{
file.MoveTo(fileNewDestination);
}
}

下面的代码分别使用了Directory类和DirectoryInfo类来演示如何移动文件夹
代码如下:

void MoveFolder1()
{
string folderToMove = @"c:temptest";
string folderNewDestination = @"c:temptest2";
if (Directory.Exists(folderToMove))
{
Directory.Move(folderToMove, folderNewDestination);
}
}

void MoveFolder2()
{
string folderToMove = @"c:temptest";
string folderNewDestination = @"c:temptest2";
DirectoryInfo folder = new DirectoryInfo(folderToMove);
if (folder.Exists)
{
folder.MoveTo(folderNewDestination);
}
}

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

void CopyFile1()
{
string sourceFile = @"c:tempNew Text Document.txt";
string destinationFile = @"c:temptest.txt";
if (File.Exists(sourceFile))
{
// true is overwrite
File.Copy(sourceFile, destinationFile, true);
}
}

void CopyFile2()
{
string sourceFile = @"c:tempNew Text Document.txt";
string destinationFile = @"c:temptest.txt";
FileInfo file = new FileInfo(sourceFile);
if (file.Exists)
{
// true is overwrite
file.CopyTo(destinationFile, true);
}
}

    
 
 

您可能感兴趣的文章:

  • c#如何生成Excel(.xls和.xlsx)文件
  • 将ocx文件转换成C#程序引用的DLL文件的办法
  • C#删除文件夹和文件到回收站示例
  • C#逐行读取txt文件的方法
  • c# 递归访问文件夹(删掉歌词文件)
  • C# WinForm编程获取文件物理路径的方法
  • C#文件管理类Directory实例分析
  • c#文件夹 递归访问的实现代码
  • c# 删除空文件夹的代码
  • C#清空添加的txt文件的实例代码
  • C#格式化文件大小的实现代码
  • C# 读取配置文件(指定路径)的方法
  • C# 获取程序集版本、文件版本
  • C#实现判断图形文件格式的方法
  • c# 获取目录下文件的代码
  • 用c#获得当前用户的Application Data文件夹位置
  • C# 读取指定路径配置文件的方法
  • C# 执行bat批处理文件的小例子
  • C# 获取系统特殊文件夹路径的方法
  • C#操作txt文件,进行清空添加操作的小例子
  • C#递归实现显示文件夹及所有文件并计算其大小的方法
  • WinDows8最新版文件夹加密
  • Shell脚本如何递归现实一个文件夹中的文件(文件夹中含有文件夹)
  • 求命令:什么命令可以把文件夹下所有的文件按修改时间先后排出来,包括子文件夹里的文件。
  • 怎么统计一个文件夹下有多少个文件(不包括文件夹)
  • 如何删除某个目录下除了指定文件夹之外的所有文件和文件夹
  • linux脚本:清空指定文件夹下的所有文件,但该文件夹不删除
  • 如何删除文件夹(文件夹包含文件和子目录)
  • 怎样使用FTP递归获取文件夹下的所有文件及子文件夹?
  • unix/linux知识 iis7站长之家
  • 在linux中如何得到一个文件夹及其下面的子文件夹中所有文件大小的总和
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 eof():如果处于文件结尾处则返回true
  • [提问]Linux下如何把多个.a文件编译一个.so文件,或者把多个.so文件编译成一个.so文件
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 请问:proc中的头文件中能包含头文件吗?(感觉如果头文件中包含头文件的话,在链接时就会有错误啊)
  • python异常信息堆栈输出到日志文件
  • 我要实现当进程打开文件时,根据文件名判断是否符合要求,符合后处理文件,再把文件返回给进程,怎么实现啊
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • vi 中编辑两个文件,怎样从其中一个文件拷一段内容到另一个文件中。(同时打开两个文件)
  • 在MyEclipse中设开启xml文件自动提示和自动完成功能
  • 请教高手一个简单问题:给定一个文件名,如何去查找该文件正在被几个程序使用,并怎么样才可以切断这个文件与正在打开该文件的程序之间的
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • linux 下的 .a 文件 .o 文件 是什么文件?各有什么作用?
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 如何用socket一次传输多个文件,如何确定文件一个文件结束
  • MyEclipse如何查看和设置文件编码格式相关操作
  • 如何用高效快捷的方式获得 文件大小 文件类型 文件更新日前?
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • 我只有文件名和文件路径,怎么把该文件上传到服务器上?
  • 设置sharepoint 2010文档库中的 pdf文件在浏览器中访问的打开方式
  • 两个文本文件,如何将第二个文件中的行从第一个文件中删除?
  • windows/windows 7/windows 8 下打开查看、修改及保存超大(GB级)文本文件及其它类型文件的工具-PilotEdit
  • 菜问题:请问如何根据文件中的一段内容查找文件路径和文件名称,在线等候


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3