以下类的命名空间都是:System.I/0;

一、Path:主要对文件路径的操作!

  常用方法:

String path=@"C:\a\b\c\123.txt";

1-1、Path.GetFileName(path);  //获得文件名:123.txt

1-2、Path.GetExtenSion(path);  //获得后缀名:.txt

1-3、Path.GetFileNameWithoutExtension(path);  //获得无后缀文件名:

1-4、Path.GetDirectoryName(path);  //获得当前文件的路径:C:\a\b\c

1-5、Path.ChangeExtenSion(path,".exe");  //对pat字符串修改后缀,即输出:C:\a\b\c\123.exe 

1-6、Path.Combine(s1,s2);  //路径的合并:s1=@"c:\1\2"或@ s1="c:\1\2\" ,s2=@"abc.txt"  结果都是:"c:\1\2\abc.txt"

1-7、Path.GetFullpath(o.txt) ; // o.txt文件在bin目录下  //获得相对路径的绝对路径:c:\..\..\..\bin\Debug\o.txt

1-8、Path.ReadAllText(path);  //获得文件(即:123.txt)的内容

1-9、PathGetTempPath()  //获得当前用户的临时文件路径

1-10、Path.GetTempFileName()  //获得一个唯一一个临时文件名(*)

1-11、Path.GetRandomFileName()  //反回一个String 的随机文件名

二、File:主要用于文件及其内容的操作

1-1、File.Exists(@"c:\1\2\abc.txt") ;  // 返回 bool ;判断路径:c:\1\2.abc.tex 是否存在

1-2、File.Create(@"c:\1\2\abc.txt");  //在 c:\1\2\创建abc.txt文件。注: 如果存在该文件名则或覆盖

1-3、File.Move(@"c:\1\2\abc.txt",@"c:\1\abc.txt")  //abc.txt 从c:\1\2\ 移动到c:\1\下

1-4、File.Copy(@"c:\1\2\abc.txt","123.txt",true);      //在当前文件abc.txt,拷贝成123.txt True表示:如果文件存在时“覆盖”,不加则报错!

1-5、File.Delete(@"c:\1\2\abc.txt");      //删除abc.txt,如果文件不存在不会报错

读/写文件内容方法:

1-6、Flie.ReadAllText(@"c:\1\2\abc.txt",Encoding.UTF-8);  //以utf-8编码 读取c:\1\2\目录下的 abc.txt 文件的内容 返回:string 字符串

1-7、Flie.ReadAllLines(@"c:\1\2\abc.txt",Encoding.UTF-8);  //以utf-8编码 按行读取c:\1\2\目录下的 abc.txt 文件的内容 返回:string[] 字符串数组

1-8、Flie.ReadAllBytes(@"c:\1\2\abc.txt",Encoding.UTF-8);  ///以utf-8编码读取c:\1\2\目录下的 abc.txt 文件的内容 返回:bytes[] 数组

1-9、Flie.WriteAllBytes(@"c:\1\2\abc.txt",bytes);  //bytes是Byte[]数组  //将 bytes 写入c:\1\2\目录下的 abc.txt 文件的内容 会覆盖

1-10、Flie.WriteAllLines(@"c:\1\2\abc.txt",strings);  //strings是strings[]数组,将strings按行写入c:\1\2\目录下的 abc.txt 文件的内容 会覆盖

1-11、Flie.WriteAllText(@"c:\1\2\abc.txt",string);  //string是字符串,将string写入c:\1\2\目录下的 abc.txt 文件的内容 返回:string 字符串  会覆盖! 补充: File.AppandAllText(@"c:\1\2\abc.txt",string)追加方法

补充:字符串、bytes[]数组互转 方法:以UTF-8为例  要统一编码,否则会出现乱码

Encoding.UTF-8.getBytes(string),

Encoding.UTF-8.getString(bytes[] bytes)

三、FileStream 类:操作字节的 即可以操作所有文件

读取文件:

———————————读取star—————

1、创建一个FileStream 对象

//FileMode是枚举类型;Appand,Create,CreateNew,Open,OpenOrCreate,Truncate

//FileAccess是枚举类型;Read,ReadWrite,Write

FileStream FSRead= new FileStream(@"c:\1\2\3\abc.txt",FileMode.OpenOrCreate,FileAccess.Read);  

byte[] buffer= new byte[1024*1024*5]; //5M数组

//.Read(byte[] buffer,int starIndex, int count)//Read方法参数  返回 int ,即读取到的实际有效的字节数

int i = FSRead.Read( buffer,0, buffer.Length);

//将数组转码成字符串

string str= encoding.UTF-8.GetString(buffer,0,r);//0:即从第0个自己开始转码,r:转码个数

//关闭 &释放 FSRead 文件流占用的资源

FSRead.Close();

FSRead.Dispose()

———————————读取end—————

———————————写入star—————

FileStream 写入:using(会自动释放资源)

using(FileStream FSWrite= new FileStream(@"c:\1\2\3\abc.txt",FileMode.OpenOrCreate,FileAccess.Wirte))

{

  string str = "123456789";

  byte [] buffer= Encoding.UTF-8.GetByte(str);

  FSWrite.Write(buffer,0,bufffer.Length)

}

———————————写入end—————

四、StreamReader 、StreamWriter 操作字符,即针对文本操作

1、创建StreamReader 读取实例

  using(StreamReader smReader= new StreamReader(@"c:\a\b\c\.123.txt",Encoding.Default))

  {

    //!非  , 是否当读到文件里面的最后一行   循环打印出文本文件的内容到窗口

    while(!smReader.EndOfStream)

    {

      //读取一行,返回string 字符串

       Console.WriteLine( smWrite.ReadLine() );

    }

  }

2、创建StreamWriter 写入实例

  //True 表示追加写入。

  using(StreamWriter smWriter= new StreamWriter(@"c:\a\b\c\.123.txt",True))

  {

      //c:\a\b\c\.123.txt 内容追加“123456”

     smWrite.Write("123456") ;

  }

  本次分享到此结束,有错误之处请回复指正!

C#对文件/目录的操作:Path、File、Directory、FileStream、StreamReader、StreamWriter等类的浅析的更多相关文章

  1. C#面向对象13 文件类操作 Path/File/FileStream

    1.path using System; using System.Collections.Generic; using System.Linq; using System.Text; using S ...

  2. File、FileStream、StreamWriter、StringWriter文件使用总结

    一.File 1.File为静态类 File类,是一个静态类,支持对文件的基本操作,包括创建,拷贝,移动,删除和打开一个文件.File类方法的参量很多时候都是路径path.主要提供有关文件的各种操作, ...

  3. 20151024_003_C#基础知识(File / FileStream / StreamReader/StreamWriter)

    1:绝对路径和相对路径 绝对路径:通过给定的路径直接能在我的电脑中找到这个文件. 相对路径:文件相对于应用程序的路径. 2:编码格式 乱码:产生乱码的原因,就是你保存这个文件所采用的编码,跟你打开这个 ...

  4. File FileStream StreamReader StreamWriter C#

    存在各种各样的IO设备,比如说文件File类(字符串文件和二进制文件),可以直接使用File类对文件进行读写操作. 这些各种IO的读取和写入是通过流的形式实现的,基类为Stream,针对各种不同的IO ...

  5. File,FileInfo,FileStream,StreamReader的区别与用法

    概括的说,File,FileInfo,FileStream是用于文件 I/O 的类,StreamReader是用于从流读取和写入流的类,使用之前都需using System.IO. 先定义一个TXT文 ...

  6. Linux 指令(一)文件/目录操作

    1. 创建目录 mkdir 格式 mkdir [OPTION]... DIRECTORY... 选项 -p 递归创建 -v 创建时提示 例: root@ubuntu:/home/eko/x# mkdi ...

  7. C#基础精华04(文件流,文件操作,File、Directory、Path,Directory)

    文件流 FileStream  可读可写  大文件  释放 StreamReader 读取   释放 StreamWriter 写入   释放 using 中释放 File 可读可写  小文件 操作文 ...

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

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

  9. 文件操作之File 和 Path

    转载:https://blog.csdn.net/u010889616/article/details/52694061 Java7中文件IO发生了很大的变化,专门引入了很多新的类: import j ...

随机推荐

  1. javascript-装饰者模式

    装饰者模式笔记 在不改变原对象的基础上, 通过对其进行包装拓展(添加属性或方法)使原有对象可以满足用户的更复杂要求. 需求不是一成不变的,需求会不断改进,以增强用户体验 demo实例:对输入框添加fo ...

  2. jQuery的deferred对象详解

    jQuery的deferred对象详解请猛击下面的链接 http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_ ...

  3. android nagative drawer图标跟标题适配

    <?xml version="1.0" encoding="utf-8"?> <resources> <string name=& ...

  4. 解决Android Graphical Layout 界面效果不显示

    解决Android Graphical Layout 界面效果不显示 qq463431476

  5. Java基础知识笔记(三:文件与数据流)

    一.输入流与输出流 输入流将数据从文件.标准输入或其他外部输入设备中加载到内存.输出流的作用则刚好相反,即将在内存中的数据保存到文件中,或传输给输出设备.输入流在Java语言中对应于抽象类java.i ...

  6. 深入理解C++对象模型

    C++对象模型是比较重要的一个知识点,学习C++对象的内存模型,就可以明白C++中的多态原理.类的初始化顺序问题.类的大小问题等. 1 C++对象模型基础 1.1 C++对象中都有哪些东东 C++对象 ...

  7. Nginx编译参数.md

    Nginx 介绍 简介 Nginx(发音同engine x)是一个网页服务器,它能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存. ...

  8. iOS通知

    链接: IOS之推送通知(本地推送和远程推送) iOS 10推送通知开发 活久见的重构 - iOS 10 UserNotifications 框架解析 iOS10全新推送功能的实现

  9. 15-前端开发之JavaScript

    什么是 JavaScript ? JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出 ...

  10. Editplus常用快捷键

    EditPlus 快捷键的使用 如果一个来你们公司面试程序员,连Ctrl + C 和Ctrl + V 都不用,而是使用“选中文本”→ 鼠标右键 → [复制],然后再鼠标右键→ [粘贴].你会不会录用他 ...