• C# 文件流


    文件流

    • Stream 类

      • 按存取位置分

        • FileStream, MemoryStream, BufferedStream

    • 读写类

      • BinaryReader和BinaryWriter

      • TextReader和TextWriter

        • StreamReader和StreamWriter

        • StringReader和StringWriter

    • 其他系

      • FileStream fs = new FileStream(@"c: c", FileMode.Create);

      • StreamWriter writer = new StreamWriter(fs);

    文件及文件夹管理

    • 对文件和文件夹操作的类

      • FileInfo 具体的文件

      • File 提供static方法

      • DirectoryInfo 具体的文件夹

      • Directory 提供static方法

      • FileSystemInfo

        • 是FileInfo及DirectoryInfo的父类

      • Path 文件路径类(路径拆分和查找)

    显示文件及文件夹的信息

    • 建立对象

      • new FileInfo(文件无聊路径)

    • 常用属性

    实例 - 搜索文件夹下的文件ListAllFiles.cs

    class Program
    {
            static void Main(string[] args) {
                ListFiles(new DirectoryInfo(@"F:download"));
            }
    
            public static void ListFiles(FileSystemInfo info) {
                if (!info.Exists) return;
    
                //info当成一个为DirectoryInfo,如果不成功则当成null
                DirectoryInfo dir = info as DirectoryInfo;
                if (dir == null) return;  //不是目录
    
                FileSystemInfo[] files = dir.GetFileSystemInfos();
                for (int i = 0; i < files.Length; i++) {
                    FileInfo file = files[i] as FileInfo;
                    if (file != null) {  //是文件
                        Console.WriteLine(
                            file.FullName + "	" + file.Length);
                    } else {
                        ListFiles(files[i]);  //对于子目录,进行递归调用
                    }
                }
    
            }
    
    }

     实例2:文件监视watcher.cs

        class Program
        {
            static void Main(string[] args) {
             const string path = @"G:Dev-Cpp代码大全OS实验";
    
                FileSystemWatcher watcher = new FileSystemWatcher();
                watcher.Path = path;
                watcher.Filter = "*.cpp";
    
                watcher.NotifyFilter = NotifyFilters.LastAccess |
                    NotifyFilters.LastWrite | NotifyFilters.FileName |
                    NotifyFilters.DirectoryName;
    
                //事件处理函数
                watcher.Changed += new FileSystemEventHandler(onChanged);
                watcher.Created += new FileSystemEventHandler(onChanged);
                watcher.Deleted += new FileSystemEventHandler(onChanged);
                watcher.Renamed += new RenamedEventHandler(OnRenamed);
    
                //开启监视
                watcher.EnableRaisingEvents = true;
                
                //等待用户输入q才结束程序
                Console.WriteLine("Press 'q' to quit the sample.");
                while (Console.Read() != 'q') ;
            }
    
            //事件处理函数
            public static void onChanged(object source, FileSystemEventArgs e) {
                //显示哪些文件做了哪些修改
                Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
            }
    
            public static void OnRenamed(object source, RenamedEventArgs e) {
                //显示被更改的文件名
                Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
            }
    
        }

    //在目录下新建一个文件即能在程序显示对 .cpp文件进行的操作类型

  • 相关阅读:
    「训练反思18」 (8.16) 认清自己
    「训练日志17」 (8.12) 崩盘
    「训练日志16」 8.11 下坠
    「训练日志15」 (8.10)
    「训练反思15」(8.10)
    「训练日志14 」(8.9) 失败
    训练日志13 (8.7)
    Linux 设置vim指令
    训练日志12 (8.5)
    训练反思12 (8.5)
  • 原文地址:https://www.cnblogs.com/douzujun/p/6731518.html
Copyright © 2020-2023  润新知