首页 > 代码库 > C# IO操作(二)
C# IO操作(二)
本篇主要介绍一些常用的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=http://www.mamicode.com/new byte[1024];"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.目录操作
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);当目录不存在就会抛异常。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。