本篇主要介绍一些常用的IO操作,对文件和目录的操作;留给自己复习之用。

  1. 1.创建文件
  2. string sPath1=Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
  3. string sPath2="1.txt";
  4. string fullPath=Path.Combine(sPath1,sPath2);
  5. //创建或覆盖指定文件,这个重载将创建一个0字节的文件
  6. FileStream fsWrite= File.Create(fullPath);
  7.  
  8. //创建或打开文件,写入UTF8编码的文本
  9. StreamWriter sw = File.CreateText(fullPath);
  10.  
  11. //创建或覆盖指定文件,这个重载需要提供读取或写入缓冲区中的字节数
  12. byte[] bteData=new byte[1024];
  13. FileStream fsWrite= File.Create(fullPath,bteData.Length);
  14.  
  15. //创建或覆盖指定文件,这个重载需要提供FileOptions的枚举值
  16. byte[] bteData=new byte[1024];
  17. FileStream fsWrite= File.Create(fullPath,bteData.Length,FileOptions.None);
  18.  
  19. //创建或覆盖指定文件,这个重载需要提供FileSecurity类型的实例(文件安全性的指定)
  20. byte[] bteData=new byte[1024];
  21. FileSecurity fsecurity = new FileSecurity("1.txt", AccessControlSections.Owner);
  22. FileStream fsWrite = File.Create(fullPath, bteData.Length, FileOptions.None, fsecurity);
  23.  
  24. //创建或打开一个文件用于写入 UTF-8 编码的文本
  25. StreamWriter sw = File.CreateText(fullPath);
  26.  
  27. //将指定文本插入文件中,如果文件不存在则创建
  28. File.WriteAllText(fullPath, "手动写入的一段文本,哈哈哈哈");
  29.  
  30. //将指定文本插入文件中,如果文件不存在则创建(这个重载指定写入编码)
  31. File.WriteAllText(fullPath, "手动写入的一段文本,哈哈哈哈",Encoding.Default);
  32.  
  33. string[] str={"张三","李四","王五","赵六","田七"};
  34. ///将指定文本插入文件中,写入指定字符串数组,再关闭文件(如果文件中有内容,则会覆盖)
  35. File.WriteAllLines(fullPath, str);
  36.  
  37. //创建一个文件,写入指定字节数组,再关闭文件(如果文件中有内容,则会覆盖)
  38. string s = "手动写入的一段文本,哈哈哈哈";
  39. byte[] bte = Encoding.Default.GetBytes(s);
  40. File.WriteAllBytes(fullPath, bte);
  41.  
  42. File.AppendAllText()//将string追加到文件
  43.  
  44. 2.读取文件
  45. //打开一个文件,读取所有行,然后关闭
  46. string sContent = File.ReadAllText(fullPath);
  47.  
  48. //打开一个文件,读取所有行,然后关闭(这个重载指定读取编码)
  49. string sContent = File.ReadAllText(fullPath, Encoding.UTF8);
  50.  
  51. //打开一个文件,读取所有行,然后关闭(返回值为一个字符串数组)
  52. string[] str = File.ReadAllLines(fullPath);
  53.  
  54. //打开一个文件,读取所有行,然后关闭(这个重载指定读取编码,返回值为一个字符串数组)
  55. string[] str = File.ReadAllLines(fullPath,Encoding.Default);
  56. foreach (string item in str)
  57. {
  58. Console.WriteLine(item);
  59. }
  60.  
  61. //打开一个文件,读取所有行,然后关闭(返回值为一个字节数组)
  62. byte[] bte = File.ReadAllBytes(fullPath);
  63. string s = Encoding.Default.GetString(bte);
  64.  
  65. File.Copy(“source”, targetFileName”, true);//文件拷贝,true表示当文件存在时“覆盖”,如果不加true,则文件存在报异常。
  66. File.Exists();//判断文件是否存在
  67. File.Move(“source”, target”);//移动(剪切),文件重命名,文件的剪切是可以跨磁盘的。
  68. File.Delete(“path”);//删除。如果文件不存在?不存在,不报错
  69.  
  70. 3.文件流
  71. FileStream fs=File.Open(); //返回FileStream
  72. FileStream fs=File.OpenRead();//返回只读的FileStream
  73. FileStream fs=File.OpenWrite();//返回只写的FileStream
  74. FileStream fs=new FileStream(参数);
  75.  
  76. 4.目录操作
  1. //创建目录
  2. DirectoryInfo dInfo = Directory.CreateDirectory(@"D:\a\b");
  3. Console.WriteLine("文件夹{0}的创建时间是:{1}",dInfo.Name,dInfo.CreationTime); //dInfo.CreationTimeUtc,返回目录创建时间的UTC时间.
  4. Directory.Move(@"D:\a\b", @"D:\1"); //将a下的b移入根目录,并重命名成1
  5. Directory.Delete(@"D:\a", true); //删除目录,第二个参数设定为true,则表示删除其子目录
  6. Directory.Exists(fullPath); //判断目录是否存在
  7. Directory.GetFiles(fullPath); //检索指定目录下的子文件
  8. string[] strDir = Directory.GetDirectories(fullPath); //检索指定目录下的子目录
  9. Directory.GetDirectoryRoot(fullPath);        //返回指定路径的根目录
  10. Directory.GetParent(sPath1); //返回指定路径的父目录
  11. string[] strDrives = Directory.GetLogicalDrives(); //检索计算机上逻辑驱动器的名称
  12. DateTime LastTime = Directory.GetLastWriteTimeUtc(fullPath); //返回上次写入指定目录或文件的日期和时间(UTC时间)
  13. DateTime Time1 = Directory.GetLastWriteTime(sPath1); //返回上次写入指定目录或文件的日期和时间
  14. DateTime AccTime = Directory.GetLastAccessTime(sPath1); //返回上次访问指定文件和目录的日期和时间
  15. DateTime utcTime = Directory.GetLastAccessTimeUtc(sPath1); //返回上次访问指定文件和目录的日期和时间(UTC时间)
  16. string[] str = Directory.GetFileSystemEntries(@"D:\黑马5期", "*.avi", SearchOption.AllDirectories); //获取指定路径中与搜索模式匹配的所有文件名称和目录名称的数组,还可以搜索子目录。
  17. string s1 = Directory.GetCurrentDirectory(); //应用程序的当前工作目录
  18. string s2 = Assembly.GetExecutingAssembly().Location; //当前执行代码的程序集的路径(路径中包含执行程序集exe的名称)

需要注意的是,File.Delete(“path”)即便文件不存在也不会抛异常;Directory.Delete(@"D:\a", true);当目录不存在就会抛异常。

  1. //依据路径创建一个目录
  2. DirectoryInfo dInfo = new DirectoryInfo(@"E:\a\b");
  3. dInfo.Create(); //创建目录
  1. //依据文件名创建一个文件
  2. FileInfo fInfo = new FileInfo("a.txt");
  3. fInfo.Create();
  1. //依据路径得到一个驱动器
  2. DriveInfo dInfo = new DriveInfo(@"E:\");
  3. Console.WriteLine("{0}---{1}---{2}", dInfo.Name,dInfo.TotalSize,dInfo.TotalFreeSpace);

C# IO操作(二)File类和Directory类的常用方法的更多相关文章

  1. File类和Directory类

    File类和Directory类分别用来对文件和各种目录进行操作,这两类可以被实例化,但不能被其他类集成. 1. File类(静态类) File类支持对文件的基本操作,它包括用于创建.复制.删除.移动 ...

  2. File类、FileInfo类、Directory类、DirectoryInfo类

    File类.Directory类,都是静态类,可以直接使用类名 FileInfo类.DirectoryInfo类,都是动态类,需要new对象,通过对象来操作 [文件的创建.复制.移动.删除]using ...

  3. 文件及文件夹操作- File类、Directory 类、FileInfo 类、DirectoryInfo 类

    文件及文件夹操作: C/S:WinForm可以操作客户端文件 Client ServerB/S:Brower Server 命名空间:using system .IO; 1. File类: 创建:Fi ...

  4. C#文件操作常用相关类(Directory类、File类、Path类)

    1.文件操作常用相关类 1)File //操作文件,静态类,对文件整体操作.拷贝.删除.剪切等 2)Directory //操作目录(文件夹),静态类 3)DirectoryInfo //文件夹的一个 ...

  5. Path类与Directory类与File类

    阅读目录 开始 Path 对路径 字符串进行操作 获得后缀 能合并路径 获取文件名 Directory和DirectoryInfo  对目录进行操作 判断目录是否存在 创建目录 删除目录 获取目录下所 ...

  6. .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化

    1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...

  7. path类和directory类对文件的路径或目录进行操作

    Path: 对文件或目录的路径进行操作(很方便)[只是对字符串的操作] 1.目录和文件操作的命名控件System.IO    2.string Path.ChangeExtension(string ...

  8. FileInfo类和DirectoryInfo类

    FileInfo类和DirectoryInfo类可以方便地对文件和文件夹进行操作. 1. FileInfo类(非静态类) FileInfo类和File类之间许多方法调用都是相同的,但是FileInfo ...

  9. 【C# IO 操作】 Path 路径类 |Directory类 |DirectoryInfo 类|DriveInfo类|File类|FileInfo类|FileStream类

    Directory类 Directory类 是一个静态类,常用的地方为创建目录和目录管理. 一下来看看它提供的操作. 1.CreateDirectory 根据指定路径创建目录.有重载,允许一次过创建多 ...

随机推荐

  1. 现代程序设计homework-02

    总体思路 (1)单维数组 单维数组的思路的构建在第一次作业已经完成了,简单来说就是根据贪心策略从头到尾累加,一旦遇到当前累加和变为负数,就将累加和清零,继续遍历数组中的元素,算法的时间复杂度是O(n) ...

  2. SQL Server 2016原生支持JSON

    转载原地址: http://www.cnblogs.com/lyhabc/p/4747694.html SQL Server 2005 开始支持 XML 数据类型,提供原生的 XML数据类型.XML ...

  3. 转载Jquery中的三种$()

    1.$()可以是$(expresion),即css选择器.Xpath或html元素,也就是通过上述表达式来匹配目标元素. 比如:$("a")构造的这个对象,是用CSS选择器构建了一 ...

  4. C/C++流程图生成器 C转流程图【worldsing笔记】

    此版本仅供学习,请大家支持正版软件!! AutoFlowChart v3.1软件下载: http://url.cn/OUK17C 支持导出:word.visio.图片格式.   例如:main.c # ...

  5. 【Stage3D学习笔记续】山寨Starling(四):渲染代码实现及测试程序

    本章会实现最核心的代码,所以涉及点会比较多,这里会发布一个版本,方便日后的回退查看. 点击下载:https://codeload.github.com/hammerc/hammerc-study-St ...

  6. smarty3--registerPlugin()函数报错问题

    smarty版本:smarty3.1.30 registerPlugin错误信息: Notice: Trying to get property of non-object in E:\Joomla\ ...

  7. 使用Knoctout.分页

    要点:点击标签翻页部分时,pageValue自动加1. 1.api中的方法 public ArticleListModel Get(int page,string _class) { var list ...

  8. C# 网络编程之豆瓣OAuth2.0认证具体解释和遇到的各种问题及解决

            近期在帮人弄一个豆瓣API应用,在豆瓣的OAuth2.0认证过程中遇到了各种问题,同一时候自己须要一个个的尝试与解决,终于完毕了豆瓣API的訪问.作者这里就不再吐槽豆瓣的认证文档了,毕 ...

  9. android的界面编程

    主要是用View以及ViewGroup,同时ViewGroup又是View的子类,充当容器. 主要有两种方法控制view的行为: 1.在XML布局文件中通过XML属性进行控制 2.在Java代码中通过 ...

  10. eclipse创建多模块maven工程小结

    创建maven工程步骤 1 新建一个maven工程,如下图所示: 2 选择项目名称(或项目目录),如下图所示: 3 填写maven工程相关信息,注意父maven工程的packing方式是pom,如下图 ...