zoukankan      html  css  js  c++  java
  • 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.目录操作
     1 //创建目录
     2         DirectoryInfo dInfo = Directory.CreateDirectory(@"D:a");
     3         Console.WriteLine("文件夹{0}的创建时间是:{1}",dInfo.Name,dInfo.CreationTime);    //dInfo.CreationTimeUtc,返回目录创建时间的UTC时间.
     4         Directory.Move(@"D:a", @"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);当目录不存在就会抛异常。

    1             //依据路径创建一个目录
    2             DirectoryInfo dInfo = new DirectoryInfo(@"E:a");
    3             dInfo.Create();     //创建目录
    1             //依据文件名创建一个文件
    2             FileInfo fInfo = new FileInfo("a.txt");
    3             fInfo.Create();
    1             //依据路径得到一个驱动器
    2             DriveInfo dInfo = new DriveInfo(@"E:");
    3             Console.WriteLine("{0}---{1}---{2}", dInfo.Name,dInfo.TotalSize,dInfo.TotalFreeSpace);
  • 相关阅读:
    hibernate对应关系详解(转)
    mybatis genertor两种使用方式(文件+项目)
    YII2 union 不同数据结构时 解决方案
    Yii2 分表后 使用 union all 分页实现代码
    Beyond Compare 4.2.10手动破解
    Xshell 6+Xftp 6官方下载免费版
    Navicat Premium
    yii2的Console定时任务创建
    内嵌多个youtube视频并展现该频道所有视频列表
    video.js 动态获取URL 并播放youtube视频
  • 原文地址:https://www.cnblogs.com/chens2865/p/3872955.html
Copyright © 2011-2022 走看看