zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C#操作目录与文件的方法步骤

c#文件方法 操作 步骤 目录
2023-06-13 09:15:00 时间
•创建目录和文件
1、通过Path类的Combine方法可以合并路径。
复制代码代码如下:

stringactiveDir=@"C:\myDir";
stringnewPath=System.IO.Path.Combine(activeDir,"mySubDirOne");

2、目录的创建。
创建目录时如果目录已存在,则不会重新创建目录,且不会报错。创建目录时会自动创建路径中各级不存在的目录。
(1)通过Directory类的CreateDirectory方法创建。
复制代码代码如下:

stringactiveDir=@"C:\myDir";
stringnewPath=System.IO.Path.Combine(activeDir,"mySubDirOne");
System.IO.Directory.CreateDirectory(newPath);

(2)通过DirectoryInfo的对象创建。
复制代码代码如下:
System.IO.DirectoryInfodi=newSystem.IO.DirectoryInfo(@"C:\myDirTwo\mySubDirThree");
di.Create();

3、文件的创建。
通过Create方法创建文件,会覆盖同名的现有文件。创建文件时,该文件所在路径的目录必须存在,否则报错。
(1)通过File类的Create方法创建。
复制代码代码如下:
stringactiveDir=@"C:\myDir";
           stringnewPath=System.IO.Path.Combine(activeDir,"mySubDirOne");
           System.IO.Directory.CreateDirectory(newPath);
           //创建一个空白文件
           stringfileNameOne=DateTime.Now.ToString("yyyyMMddHHmmssffff")
               +".txt";
           stringfilePathOne=System.IO.Path.Combine(newPath,fileNameOne);
           System.IO.File.Create(filePathOne);

(2)通过FileInfo对象创建。
复制代码代码如下:
//通过Combine合并目录
           //然后创建目录
           stringactiveDir=@"C:\myDir";
           stringnewPath=System.IO.Path.Combine(activeDir,"mySubDirOne");
           System.IO.Directory.CreateDirectory(newPath);
           //创建一个空白文件
           stringfileNameOne=DateTime.Now.ToString("yyyyMMddHHmmssffff")
               +".txt";
           stringfilePathOne=System.IO.Path.Combine(newPath,fileNameOne);
           System.IO.FileInfofi=newSystem.IO.FileInfo(filePathOne);
           fi.Create();

•复制目录文件
复制代码代码如下:
//复制单个文件到指定目录
           stringfileName="test.txt";
           stringsourcePath=@"C:\testDir\subTestDir";
           stringtargetPath=@"C:\testDir\subTestDirTwo";
           stringsourceFile=System.IO.Path.Combine(sourcePath,fileName);
           stringdestFile=System.IO.Path.Combine(targetPath,fileName);
           if(!System.IO.Directory.Exists(targetPath))
               System.IO.Directory.CreateDirectory(targetPath);
           //如果已存在,参数为false时将报错,参数为true重写该文件
           //当copy方法为两个参数时,默认重写为false。
           System.IO.File.Copy(sourceFile,destFile,true);
           //以下为复制一个目录下所有文件到指定目录
           //如果复制有子目录的目录的所有文件,可以用递归或堆栈算法实现
           if(System.IO.Directory.Exists(sourcePath))
           {
               string[]files=System.IO.Directory.GetFiles(sourcePath);
               foreach(stringsinfiles)
               {
                   //仅返回路径字符串的文件名及后缀
                   fileName=System.IO.Path.GetFileName(s);
                   destFile=System.IO.Path.Combine(targetPath,fileName);
                   System.IO.File.Copy(s,destFile,true);
               }
           }
       }

•移动目录和文件
复制代码代码如下:
/*移动文件*/
           stringsourceFile=@"C:\testDir\subTestDir\test.txt";
           stringdestFile=@"C:\testDir\subTestDirTwo\test.txt";
           //当目标文件存在时,抛出异常
           System.IO.File.Move(sourceFile,destFile);
           /*移动目录*/
           //移动目录将移动改目录的子目录和文件
           System.IO.Directory.Move(@"C:\testDir\subTestDirTwo\",@"C:\testDir\subTestDir");

•删除目录和文件
1、删除目录
删除目录,如果该目录不存在,会抛出异常。可以通过File类的Delete方法删除目录,也可以通过FileInfo对象方法删除目录。
(1)通过File类的Delete方法删除目录
复制代码代码如下:
//删除可写空目录
           //如果不为空抛出目录不为空异常
           try
           {
               System.IO.Directory.Delete(@"C:\testDir\subTestDir");
           }
           catch(System.IO.IOExceptione)
           {
               Console.WriteLine(e.Message);
           }
           //第二参数为false时,只能删除空目录,否则抛出不为空异常
           //第二参数为true时,删除目录,包括子目录和文件
           try
           {
               System.IO.Directory.Delete(@"C:\testDir\subTestDir",true);
           }
           catch(System.IO.IOExceptione)
           {
               Console.WriteLine(e.Message);
           }

(2)通过FileInfo对象方法删除目录
复制代码代码如下:
System.IO.DirectoryInfodi=newSystem.IO.DirectoryInfo(@"C:\testDir\subTestDirTwo");
           try
           {
               //无参数删除空目录
               //当参数为false,可删除空目录;为true,删除目录,包括子目录和文件
               di.Delete(true);
           }
           catch(System.IO.IOExceptione)
           {
               Console.WriteLine(e.Message);
           }

2、删除文件
删除文件时如果指定文件的目录存在,而文件不存在,则不会抛出异常,如果指定文件的目录不存在,则会抛出异常。
(1)通过File类Delete方法删除文件
复制代码代码如下:
try
               {
                   System.IO.File.Delete(@"C:\testDir\subTestDir\test.txt");
               }
               catch(System.IO.IOExceptione)
               {
                   Console.WriteLine(e.Message);
               }

(2)通过FileInfo对象Delete方法删除文件
复制代码代码如下:
System.IO.FileInfofi=newSystem.IO.FileInfo(@"C:\testDir\subTestDir\test1.txt");
           try
           {
               fi.Delete();
           }
           catch(System.IO.IOExceptione)
           {
               Console.WriteLine(e.Message);
           }