zoukankan      html  css  js  c++  java
  • 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);
                }

        

  • 相关阅读:
    BZOJ 1101 [POI2007]Zap
    BZOJ 2005 [Noi2010]能量采集
    BZOJ 1053 [HAOI2007]反素数ant
    BZOJ 4321 queue2
    ZOJ 1456 Minimum Transport Cost(Floyd算法求解最短路径并输出最小字典序路径)
    POJ 3268 Silver Cow Party(Dijkstra算法求解来回最短路问题)
    Trie(字典树)解析及其在编程竞赛中的典型应用举例
    POJ 3037 Skiing(如何使用SPFA求解二维最短路问题)
    POJ 1724 ROADS(使用邻接表和优先队列的BFS求解最短路问题)
    POJ 1860 Currency Exchange(如何Bellman-Ford算法判断图中是否存在正环)
  • 原文地址:https://www.cnblogs.com/wanghonghu/p/2574579.html
Copyright © 2011-2022 走看看