极品分享

C#操作目录和文件

 

  •  创建目录和文件

    1、通过Path类的Combine方法可以合并路径。

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

    2、目录的创建。

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

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

      (1)通过DirectoryInfo的对象创建。

            System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"C:\myDirTwo\mySubDirThree");            di.Create();

     3、文件的创建。

      通过Create方法创建文件,会覆盖同名的现有文件。创建文件时,该文件所在路径的目录必须存在,否则报错。

      (1)通过File类的Create方法创建。

 
            string activeDir = @"C:\myDir";            string newPath = System.IO.Path.Combine(activeDir, "mySubDirOne");            System.IO.Directory.CreateDirectory(newPath);            //创建一个空白文件            string fileNameOne = DateTime.Now.ToString("yyyyMMddHHmmssffff")                + ".txt";            string filePathOne = System.IO.Path.Combine(newPath, fileNameOne);            System.IO.File.Create(filePathOne);
 

      (2)通过FileInfo对象创建。

 
            //通过Combine合并目录             //然后创建目录            string activeDir = @"C:\myDir";            string newPath = System.IO.Path.Combine(activeDir, "mySubDirOne");            System.IO.Directory.CreateDirectory(newPath);            //创建一个空白文件            string fileNameOne = DateTime.Now.ToString("yyyyMMddHHmmssffff")                + ".txt";            string filePathOne = System.IO.Path.Combine(newPath, fileNameOne);            System.IO.FileInfo fi = new System.IO.FileInfo(filePathOne);            fi.Create();
 
  •  复制目录文件
 
            //复制单个文件到指定目录            string fileName = "test.txt";            string sourcePath = @"C:\testDir\subTestDir";            string targetPath = @"C:\testDir\subTestDirTwo";            string sourceFile = System.IO.Path.Combine(sourcePath, fileName);            string destFile = 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 (string s in files)                {                    //仅返回路径字符串的文件名及后缀                    fileName = System.IO.Path.GetFileName(s);                    destFile = System.IO.Path.Combine(targetPath, fileName);                    System.IO.File.Copy(s, destFile, true);                }            }        }
 
  •  移动目录和文件
 
            /*移动文件*/            string sourceFile = @"C:\testDir\subTestDir\test.txt";            string destFile = @"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.IOException e)            {                Console.WriteLine(e.Message);            }            //第二参数为false时,只能删除空目录,否则抛出不为空异常             //第二参数为true时,删除目录,包括子目录和文件            try            {                System.IO.Directory.Delete(@"C:\testDir\subTestDir", true);            }            catch(System.IO.IOException e)            {                Console.WriteLine(e.Message);            }
 

     (2)通过FileInfo对象方法删除目录

 
    System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"C:\testDir\subTestDirTwo");            try            {                //无参数删除空目录                 //当参数为false,可删除空目录;为true,删除目录,包括子目录和文件                di.Delete(true);            }            catch (System.IO.IOException e)            {                Console.WriteLine(e.Message);            }
 

     2、删除文件

       删除文件时如果指定文件的目录存在,而文件不存在,则不会抛出异常,如果指定文件的目录不存在,则会抛出异常。

      (1)通过File类Delete方法删除文件

 
                try                {                    System.IO.File.Delete(@"C:\testDir\subTestDir\test.txt");                }                catch(System.IO.IOException e)                {                    Console.WriteLine(e.Message);                }
 

      (2)通过FileInfo对象Delete方法删除文件

 
            System.IO.FileInfo fi = new System.IO.FileInfo(@"C:\testDir\subTestDir\test1.txt");            try            {                fi.Delete();            }            catch(System.IO.IOException e)            {                Console.WriteLine(e.Message);            }
 

 

    

2013-04-23 0 /
NET学习
/
标签: 

评论回复

回到顶部