C# IO操作(二)File类和Directory类的常用方法
本篇主要介绍一些常用的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类的常用方法的更多相关文章
- File类和Directory类
File类和Directory类分别用来对文件和各种目录进行操作,这两类可以被实例化,但不能被其他类集成. 1. File类(静态类) File类支持对文件的基本操作,它包括用于创建.复制.删除.移动 ...
- File类、FileInfo类、Directory类、DirectoryInfo类
File类.Directory类,都是静态类,可以直接使用类名 FileInfo类.DirectoryInfo类,都是动态类,需要new对象,通过对象来操作 [文件的创建.复制.移动.删除]using ...
- 文件及文件夹操作- File类、Directory 类、FileInfo 类、DirectoryInfo 类
文件及文件夹操作: C/S:WinForm可以操作客户端文件 Client ServerB/S:Brower Server 命名空间:using system .IO; 1. File类: 创建:Fi ...
- C#文件操作常用相关类(Directory类、File类、Path类)
1.文件操作常用相关类 1)File //操作文件,静态类,对文件整体操作.拷贝.删除.剪切等 2)Directory //操作目录(文件夹),静态类 3)DirectoryInfo //文件夹的一个 ...
- Path类与Directory类与File类
阅读目录 开始 Path 对路径 字符串进行操作 获得后缀 能合并路径 获取文件名 Directory和DirectoryInfo 对目录进行操作 判断目录是否存在 创建目录 删除目录 获取目录下所 ...
- .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化
1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...
- path类和directory类对文件的路径或目录进行操作
Path: 对文件或目录的路径进行操作(很方便)[只是对字符串的操作] 1.目录和文件操作的命名控件System.IO 2.string Path.ChangeExtension(string ...
- FileInfo类和DirectoryInfo类
FileInfo类和DirectoryInfo类可以方便地对文件和文件夹进行操作. 1. FileInfo类(非静态类) FileInfo类和File类之间许多方法调用都是相同的,但是FileInfo ...
- 【C# IO 操作】 Path 路径类 |Directory类 |DirectoryInfo 类|DriveInfo类|File类|FileInfo类|FileStream类
Directory类 Directory类 是一个静态类,常用的地方为创建目录和目录管理. 一下来看看它提供的操作. 1.CreateDirectory 根据指定路径创建目录.有重载,允许一次过创建多 ...
随机推荐
- 现代程序设计homework-02
总体思路 (1)单维数组 单维数组的思路的构建在第一次作业已经完成了,简单来说就是根据贪心策略从头到尾累加,一旦遇到当前累加和变为负数,就将累加和清零,继续遍历数组中的元素,算法的时间复杂度是O(n) ...
- SQL Server 2016原生支持JSON
转载原地址: http://www.cnblogs.com/lyhabc/p/4747694.html SQL Server 2005 开始支持 XML 数据类型,提供原生的 XML数据类型.XML ...
- 转载Jquery中的三种$()
1.$()可以是$(expresion),即css选择器.Xpath或html元素,也就是通过上述表达式来匹配目标元素. 比如:$("a")构造的这个对象,是用CSS选择器构建了一 ...
- C/C++流程图生成器 C转流程图【worldsing笔记】
此版本仅供学习,请大家支持正版软件!! AutoFlowChart v3.1软件下载: http://url.cn/OUK17C 支持导出:word.visio.图片格式. 例如:main.c # ...
- 【Stage3D学习笔记续】山寨Starling(四):渲染代码实现及测试程序
本章会实现最核心的代码,所以涉及点会比较多,这里会发布一个版本,方便日后的回退查看. 点击下载:https://codeload.github.com/hammerc/hammerc-study-St ...
- smarty3--registerPlugin()函数报错问题
smarty版本:smarty3.1.30 registerPlugin错误信息: Notice: Trying to get property of non-object in E:\Joomla\ ...
- 使用Knoctout.分页
要点:点击标签翻页部分时,pageValue自动加1. 1.api中的方法 public ArticleListModel Get(int page,string _class) { var list ...
- C# 网络编程之豆瓣OAuth2.0认证具体解释和遇到的各种问题及解决
近期在帮人弄一个豆瓣API应用,在豆瓣的OAuth2.0认证过程中遇到了各种问题,同一时候自己须要一个个的尝试与解决,终于完毕了豆瓣API的訪问.作者这里就不再吐槽豆瓣的认证文档了,毕 ...
- android的界面编程
主要是用View以及ViewGroup,同时ViewGroup又是View的子类,充当容器. 主要有两种方法控制view的行为: 1.在XML布局文件中通过XML属性进行控制 2.在Java代码中通过 ...
- eclipse创建多模块maven工程小结
创建maven工程步骤 1 新建一个maven工程,如下图所示: 2 选择项目名称(或项目目录),如下图所示: 3 填写maven工程相关信息,注意父maven工程的packing方式是pom,如下图 ...