zoukankan      html  css  js  c++  java
  • 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文件进行的操作类型

  • 相关阅读:
    04.用户故事与敏捷方法--搜集故事笔记
    01.用户故事与敏捷方法——起步笔记
    00-B.用户故事与敏捷方法前言笔记
    00-A.用户故事与敏捷方法序言笔记
    14.表单脚本——JavaScript高级程序设计(笔记)
    13.事件——JavaScript高级程序设计(笔记)
    17.错误处理与调试——JavaScript高级程序设计(笔记)
    12.DOM2和DOM3——JavaScript高级程序设计
    11.DOM扩展——JavaScript高级程序设计(笔记)
    10.Dom——JavaScript高级程序设计(笔记)
  • 原文地址:https://www.cnblogs.com/douzujun/p/6731518.html
Copyright © 2011-2022 走看看