zoukankan      html  css  js  c++  java
  • C#操作目录和文件

    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:myDirTwomySubDirThree");
                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:	estDirsubTestDir";
                string targetPath = @"C:	estDirsubTestDirTwo";
    
                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:	estDirsubTestDir	est.txt";
                string destFile = @"C:	estDirsubTestDirTwo	est.txt";
                //当目标文件存在时,抛出异常
                System.IO.File.Move(sourceFile, destFile);
    
                /*移动目录*/
                //移动目录将移动改目录的子目录和文件
                System.IO.Directory.Move(@"C:	estDirsubTestDirTwo", @"C:	estDirsubTestDir");
    复制代码
    •  删除目录和文件

         1、删除目录

             删除目录,如果该目录不存在,会抛出异常。可以通过File类的Delete方法删除目录,也可以通过FileInfo对象方法删除目录。

         (1)通过 File类的Delete方法删除目录

    复制代码
                //删除可写空目录
                //如果不为空抛出目录不为空异常
                try
                {
                    System.IO.Directory.Delete(@"C:	estDirsubTestDir");
                }
                catch (System.IO.IOException e)
                {
                    Console.WriteLine(e.Message);
                }
    
                //第二参数为false时,只能删除空目录,否则抛出不为空异常
                //第二参数为true时,删除目录,包括子目录和文件
                try
                {
                    System.IO.Directory.Delete(@"C:	estDirsubTestDir", true);
                }
                catch(System.IO.IOException e)
                {
                    Console.WriteLine(e.Message);
                }
    复制代码

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

    复制代码
        System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"C:	estDirsubTestDirTwo");
                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:	estDirsubTestDir	est.txt");
                    }
                    catch(System.IO.IOException e)
                    {
                        Console.WriteLine(e.Message);
                    }
    复制代码

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

    复制代码
                System.IO.FileInfo fi = new System.IO.FileInfo(@"C:	estDirsubTestDir	est1.txt");
                try
                {
                    fi.Delete();
                }
                catch(System.IO.IOException e)
                {
                    Console.WriteLine(e.Message);
                }
    复制代码
  • 相关阅读:
    基于 HTML5 Canvas 的交互式地铁线路图
    基于HTML5的WebGL实现json和echarts图表展现在同一个界面
    基于HTML5和WebGL的3D网络拓扑结构图
    JavaScript基础:创建对象
    使用ksoap2报java.io.EOFException异常问题解决方法
    Silverlight之我见
    今年的IT大趋势是虚拟现实
    Apache服务器部署ASP.NET网站
    Bootstrap优秀网站:乐窝网
    [转载]C#读取Excel几种方法的体会
  • 原文地址:https://www.cnblogs.com/gyc19920704/p/5437872.html
Copyright © 2011-2022 走看看