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

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

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

             //依据路径创建一个目录
DirectoryInfo dInfo = new DirectoryInfo(@"E:\a\b");
dInfo.Create(); //创建目录
             //依据文件名创建一个文件
FileInfo fInfo = new FileInfo("a.txt");
fInfo.Create();
             //依据路径得到一个驱动器
DriveInfo dInfo = new DriveInfo(@"E:\");
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. 如何让Iconfont作用到content伪类中

    沿用同行思密达的方法整理了一下;前提是先引入iconfont字体图标(引用线上iconfont查看上篇随笔):比如 其中&#是开头用以标明这是字符实体,x表示这是十六进制,而CSS的cont ...

  2. C++学习笔记(十四):模板

    模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码可重用性.模版可以分为两类,一个是函数模版,另外一个是类模版.Java中对应的技术称为泛型. 函数模板 ...

  3. 更改OS序列号(slmgr)

    slmgr /ipk 489j-abc-def-hij-mnn slmgr /skms 8.8.8.8:1688 slmgr /ato

  4. 《Java并发编程实战》第十五章 原子变量与非堵塞同步机制 读书笔记

    一.锁的劣势 锁定后假设未释放.再次请求锁时会造成堵塞.多线程调度通常遇到堵塞会进行上下文切换,造成很多其它的开销. 在挂起与恢复线程等过程中存在着非常大的开销,而且通常存在着较长时间的中断. 锁可能 ...

  5. android学习日记03--常用控件tabSpec/tabHost

    常用控件7.TabSpec和TabHost 比较常用的控件,感觉手机QQ的整体布局就是这个,只不过tab放在底部而已.TabSpec相当于浏览器的分页,而TabHost就相当于分页的集合TabSpec ...

  6. springMVC整合xStream

    一. 简单介绍: xStream能够轻易的将Java对象转换成xml.JSON.本篇博客将使用springMVC整合利用xStream转换xml. 关于xStream使用的博文:http://blog ...

  7. careercup-中等难度 17.6

    17.6 给定一个整数数组,编写一个函数,找出索引m和n,只要将m和n之间的元素排好序,整个数组就是有序的.注意:n越小越好,也就是说,找出符合条件的最短序列. 解法: 开始解题之前,让我们先确认一下 ...

  8. 深入探索 Java 热部署--转

    在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作.本文将探索如何在不破 ...

  9. 如何快速的开发一个完整的iOS直播app(原理篇)

    目录 [如何快速的开发一个完整的iOS直播app](原理篇) [如何快速的开发一个完整的iOS直播app](播放篇) [如何快速的开发一个完整的iOS直播app](采集篇) 前言 大半年没写博客了,但 ...

  10. C# 之 Word光标移动 GoTo 方法

    对于 Document 或 Range对象:返回一个 Range对象,该对象代表指定项(例如页.书签或域)的开始位置. 对于 Selection对象:将插入点移至指定项前面的字符位置,并返回一个 Ra ...