c# 文件处理

重点介绍windows应用程序对文件读写所涉及的System.IO命名空间和FileFileInfoFileStreamBinaryReaderBinaryWriterBufferedStream等类,以及常用的方法、参数、属性、事件、枚举等。
System.IO 命名空间常用的类

说明

提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream 对象。

提供创建、复制、删除、移动和打开文件的实例方法,并且帮助创建 FileStream 对象。无法继承此类。

FileStream

公开以文件为主的 Stream,既支持同步读写操作,也支持异步读写操作。

BinaryReader

用特定的编码将基元数据类型读作二进制值。

BinaryWriter

以二进制形式将基元类型写入流,并支持用特定的编码写入字符串。

BufferedStream

给另一流上的读写操作添加一个缓冲层。无法继承此类。

Directory

公开用于创建、移动和枚举通过目录和子目录的静态方法。无法继承此类。

DirectoryInfo

公开用于创建、移动和枚举目录和子目录的实例方法。无法继承此类。

Path

对包含文件或目录路径信息的 String 实例执行操作。这些操作是以跨平台的方式执行的。

StreamReader

实现一个 TextReader,使其以一种特定的编码从字节流中读取字符。

StreamWriter

实现一个 TextWriter,使其以一种特定的编码向流中写入字符。

FileSysWatcher

侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件。

File类的常用方法

利用MSDN就可以掌握类File的使用,类File提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream 对象。类File有几个常用方法。
方法

说明

Move

将指定文件移到新位置,并提供指定新文件名的选项。

Delete

删除指定的文件。如果指定的文件不存在,则不引发异常。

Copy

已重载。 将现有文件复制到新文件。

CreateText

创建或打开一个文件用于写入 UTF-8 编码的文本。

OpenText

打开现有 UTF-8 编码文本文件以进行读取。

Open

已重载。 打开指定路径上的 FileStream

了解File类的一些主要方法

方法

说明

Move

将指定文件移到新位置,并提供指定新文件名的选项。

Delete

删除指定的文件。如果指定的文件不存在,则不引发异常。

Copy

已重载。 将现有文件复制到新文件。

CreateText

创建或打开一个文件用于写入 UTF-8 编码的文本。

OpenText

打开现有 UTF-8 编码文本文件以进行读取。

Open

已重载。 打开指定路径上的 FileStream

using System;

using System.IO;

class Test

{

    public static void Main()

    {

        string path = @"c:\temp\MyTest.txt";

        if (!File.Exists(path))

        {

            // 创建文件以便写入内容。

            using (StreamWriter sw = File.CreateText(path))

            {

                sw.WriteLine("Hello");

                sw.WriteLine("And");

                sw.WriteLine("Welcome");

            }

        }

        // 打开文件从里面读数据。

        using (StreamReader sr = File.OpenText(path))

        {

            string s = "";

            while ((s = sr.ReadLine()) != null)

            {

                Console.WriteLine(s);

            }

        }

        try

        {

            string path2 = path + "temp";

            // 确认将要拷贝成的文件是否已经有同名的文件存在。

            File.Delete(path2);

            // 拷贝文件。

            File.Copy(path, path2);

            Console.WriteLine("{0} was copied to {1}.", path, path2);

            // 删除新生成的文件。

            File.Delete(path2);

            Console.WriteLine("{0} was successfully deleted.", path2);

        }

        catch (Exception e)

        {

            Console.WriteLine("The process failed: {0}", e.ToString());

        }

    }

}
 
Fileinfo类的常用方法

FileInfo提供创建、复制、删除、移动和打开文件的实例方法,并且帮助创建 FileStream 对象。无法继承此类。类FileInfo有几个常用方法。
属性

说明

Attributes        

获取或设置当前 FileSystemInfo FileAttributes。(从 FileSystemInfo 继承。)

获取或设置当前 FileSystemInfo 对象的创建时间。(从 FileSystemInfo 继承。)

获取父目录的实例。

获取表示目录的完整路径的字符串。

已重写。获取指示文件是否存在的值。

获取表示文件扩展名部分的字符串。(从 FileSystemInfo 继承。)

 

下面的示例演示了 FileInfo类的一些主要属性。
 
using System;

using System.IO;

class Test

{

    public static void Main()

{

        string fileName = "C:\\autoexec.bat";

            FileInfo fileInfo = new FileInfo(fileName);

            if (!fileInfo.Exists)

            {

                return;

            }

            Console.WriteLine("{0} has a directoryName of {1}",fileName,fileInfo.DirectoryName);

            /* 下面是代码的处理结果,

             * 实际的结果因机器不同:

             *

             * C:\autoexec.bat has a directoryName of C:\

             */

    }

}
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章