本篇主要介绍一些常用的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. Java程序员的10道XML面试题

    包括web开发人员的Java面试在内的各种面试中,XML面试题在各种编程工作的面试中很常见.XML是一种成熟的技术,经常作为从一个平台到其他平台传输数据的标准.XML面试问题包括用于转换XML文件的X ...

  2. 字符流缓冲区BufferedReader之readLine方法的原理

  3. 转载 How to Encrypt connection string in web.config

    转载原地址: https://chiragrdarji.wordpress.com/2008/08/11/how-to-encrypt-connection-string-in-webconfig/ ...

  4. Keil: warning: A1581W: Added 2 bytes of padding at address

    KEIL MDK编译警告:   warning: A1581W: Added 2 bytes of padding at address xxx 原因: 在Keil 里写汇编代码时如果代码尺寸不对齐, ...

  5. Modbus Poll :Byte Missing Error或CRC Error

    原因: 1.通信线路受干扰或是路线接触不良:    用显示器测量物理电平信号   2.从机工作不正常: 检测电源不正常或查程序bug   3.PC主机串口不正常: PC串口2.3脚答短接用串口调试器测 ...

  6. iOS 开发 上传代码至github(转)

    一.注册github账号   首先需要注册一个github账号,注册地址:https://github.com 接着会来到这 然后会收到一封github发的邮件,进入邮箱验证 二.创建个人的githu ...

  7. iis启动网站提示 文件正在使用

    通常是端口被占用,使用netstat -ano,查看占用的进程pid,结束

  8. HP LoadRunner 11 破解及license

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  9. 【剑指Offer学习】【全部面试题汇总】

    剑指Offer学习 剑指Offer这本书已经学习完了.从中也学习到了不少的东西,如今做一个总的文件夹.供自已和大家一起參考.学如逆水行舟.不进则退.仅仅有不断地学习才干跟上时候.跟得上技术的潮流! 全 ...

  10. Jenkins(二)

    官网:https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins 我的这篇文章不过简单的依据上文,介绍Jenkins提供了哪些功能.详细大家还是要 ...