码迷,mamicode.com
首页 > Windows程序 > 详细

C# 文件流

时间:2017-04-19 09:44:14      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:reader   filter   return   object   int   data-   建立   inf   操作   

文件流

  • Stream 类

    • 按存取位置分

      • FileStream, MemoryStream, BufferedStream

  • 读写类

    • BinaryReader和BinaryWriter

    • TextReader和TextWriter

      • StreamReader和StreamWriter

      • StringReader和StringWriter

  • 其他系

    • FileStream fs = new FileStream(@"c:\t\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 + "\t" + 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文件进行的操作类型

 

C# 文件流

标签:reader   filter   return   object   int   data-   建立   inf   操作   

原文地址:http://www.cnblogs.com/douzujun/p/6731518.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!