博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#操作目录和文件
阅读量:4935 次
发布时间:2019-06-11

本文共 3804 字,大约阅读时间需要 12 分钟。

  •  创建目录和文件

    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); }

转载于:https://www.cnblogs.com/gyc19920704/p/5437872.html

你可能感兴趣的文章
css-sprite切割图片(加快网页加载速度)
查看>>
20145316 《信息安全系统设计基础》第十四周学习总结
查看>>
Liferay7 BPM门户开发之18: 理解ServiceContext
查看>>
从零开始学区块链(3)
查看>>
Intel Galileo development documentation
查看>>
Jquery特效
查看>>
web服务器
查看>>
EV: Workaround to Allow Only One Instance or Window of outlook
查看>>
数据校验,
查看>>
IntelliJ IDEA完美解决tomcat8+乱码问题
查看>>
GDI+ ColorMatrix的完全揭秘
查看>>
破解电信光猫华为HG8120C关闭路由功能方法
查看>>
在Qt示例项目的C ++ / QML源中的//! [0]的含义是什么?
查看>>
【智能家居篇】wifi网络接入原理(上)——扫描Scanning
查看>>
操作引入xml文件的书包(定位到指定节点)
查看>>
操作系统学习笔记系列(一)- 导论
查看>>
已计划将多个默认网关用于提供单一网络
查看>>
CSS实例:图片导航块
查看>>
python进阶七_文件操作(三)
查看>>
window的对象有哪些(笔记)
查看>>