alex_bn_lee

导航

【011】◀▶ C#学习(八) - IO命名空间

参考:获取指定路径下面的子文件夹C#

参考:C#对文件夹的判断、创建、移动、删除

《C#入门经典(中文第四版)》第18章:图形图像程序设计

---------------------------------------------------------------------------------------------------------

●·● 目录:

System.IO 命名空间

A1 ………… File 类
                   举例:通过时间创建文件夹及文件,并写入内容!
A2 ………… Directory 类
A3 ………… Path 类
A4 ………… StreamReader 类
A5 ………… StreamWriter 类
A6 ………… FileWriter 类
A7 ………… FileStream 类
A8 ………… FileInfo 类
A9 ………… DirectoryInfo 类

G1 ………… FileSystemInfo 类

---------------------------------------------------------------------------------------------------------

System.IO 命名空间

---------------------------------------------------------------------------------------------------------

            ╔════════╗
╠════╣    第A1个    ╠══════════════════════════════════════════════════╣
            ╚════════╝

●·● File 类

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

2. File 方法(s):

  • Copy(String, String):复制指定文件到新文件夹。不允许覆盖同名的文件。【路径要存在】
  • Copy(String, String, Boolean): 将现有文件复制到新文件。 允许覆盖同名的文件。【true】
  • Create:在指定路径中创建或覆盖文件。【路径要存在】返回值:FileStream   【返回 FileStream】
            using (FileStream fs = File.Create(path, 1024)) 
    {
    Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
    // Add some information to the file.
    fs.Write(info, 0, info.Length);
    }
  • Delete:删除指定文件。【文件不存在,不报错】
  • Exists:检查指定路径的文件是否存在,存在,返回true。【静态】
  • GetAttributes:获取指定文件的属性。【静态】
  • GetCreationTime:返回指定文件或文件夹的创建日期和时间。【静态】
  • GetLastAccessTime:返回上次访问指定文件或文件夹的创建日期和时间。【静态】
  • GetLastWriteTime:返回上次写入指定文件或文件夹的创建日期和时间。【静态】
  • Move:移动指定文件到新文件夹。【重命名】
  • Open:返回指定文件相关的FileStream,并提供指定的读/写许可。                  【返回 FileStream】
  • OpenRead:返回指定文件相关的只读FileStream。打开现有文件以进行读取。 【返回 FileStream】
            using (FileStream fs = File.OpenRead(path)) 
    {
    }
  • OpenWrite:返回指定文件相关的读/写FileStream。                                        【返回 FileStream】
  • SetAttributes:设置指定文件的属性。
  • SetCretionTime:设置指定文件的创建日期和时间。
  • SetLastAccessTime:设置上次访问指定文件的日期和时间。
  • SetLastWriteTime:设置上次写入指定文件的日期和时间。
  • WriteAllLines(String, String()):创建一个新文件,在其中写入指定的字符串数组,然后关闭该文件。
  • WriteAllLines(String, String(), Encoding):创建一个新文件,使用指定的编码在其中写入指定的字符串数组,然后关闭该文件。
  • WriteAllText(String, String): 创建一个新文件,在其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则覆盖该文件。
            private void button1_Click(object sender, EventArgs e)
    {
    OpenFileDialog ofd = new OpenFileDialog();
    if (ofd.ShowDialog() == DialogResult.OK)
    {
    File.WriteAllText(ofd.FileName, textBox1.Text); //写入到文件
    }
    }
  • WriteAllText(String, String, Encoding):同上。
    View Code - 写入到txt文件
    1             string s = textBox1.Text;
    2 File.WriteAllText(@"E:\Desktop\222.txt", s);
  • ReadAllText(String):打开一个文本文件,读取文件的所有行,然后关闭该文件。
            private void button1_Click(object sender, EventArgs e)
    {
    OpenFileDialog ofd = new OpenFileDialog();
    if (ofd.ShowDialog() == DialogResult.OK)
    {
    textBox1.Text = File.ReadAllText(ofd.FileName); //从文件读取
    }
    }
  • ReadAllText(String, Encoding):打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。
    Encoding 类
    View Code - 读取txt文件
    1             string s = File.ReadAllText(@"E:\Desktop\1.txt", System.Text.Encoding.Default);
    2 textBox1.Text = s;
  • ReadAllLines(String):打开一个文本文件,读取文件的所有行,然后关闭该文件。返回String数组!
  • ReadAllLines(String, Encoding):打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。
    View Code - 读取txt文件
    1             string[] lines = File.ReadAllLines(@"E:\Desktop\1.txt",System.Text.Encoding.Default);
    2 StringBuilder sb = new StringBuilder();
    3 foreach (string line in lines)
    4 {
    5 sb.AppendLine(line);
    6 }
    7 textBox1.Text = sb.ToString();
  • AppendText:返回StreamWriter,向指定文件添加数据;如文件不存在,就创建该文件。【返回 StreamWriter】
            private void button1_Click(object sender, EventArgs e)
    {
    OpenFileDialog ofd = new OpenFileDialog();
    if (ofd.ShowDialog() == DialogResult.OK)
    {
    using (StreamWriter streamWriter = File.AppendText(ofd.FileName))
    {
    streamWriter.WriteLine(textBox1.Text); //追加到文件的末尾!
    }
    }
    }
  • CreateText:返回StreamWriter,创建或打开一个文件用于写入 UTF-8 编码的文本。        【返回 StreamWriter】
  • OpenText:返回StreamReader,打开现有 UTF-8 编码文本文件以进行读取。               【返回 StreamReader】
    View Code - 以上举例
     1 using System;
    2 using System.IO;
    3
    4 class Test
    5 {
    6 public static void Main()
    7 {
    8 string path = @"E:\Desktop\2.txt";
    9 if (!File.Exists(path))
    10 {
    11
    12 using (StreamWriter sw = File.CreateText(path))
    13 {
    14 sw.WriteLine("Hello");
    15 sw.WriteLine("And");
    16 sw.WriteLine("Welcome");
    17 }
    18
    19
    20
    21 }
    22
    23
    24 using (StreamWriter sw = File.AppendText(path))
    25 {
    26 sw.WriteLine("This");
    27 sw.WriteLine("is Extra");
    28 sw.WriteLine("Text");
    29 }
    30
    31 using (StreamReader sr = File.OpenText(path))
    32 {
    33 string s = "";
    34 while ((s = sr.ReadLine()) != null)
    35 {
    36 Console.WriteLine(s);
    37 }
    38 }
    39 }
    40 }

举例:通过时间创建文件夹及文件,并写入内容!

string folder = DateTime.Now.Month + "" + DateTime.Now.Day + "";  //通过当天的日期定义文件夹的名称
string file = DateTime.Now.Hour + "" + DateTime.Now.Minute + "" + DateTime.Now.Second + "" + ".txt";  
//通过当时的时间定义文件的名称
string folderPath = Path.Combine(@"F:\Desktop\长江水文", folder);  //定义文件夹的路径 string filePath = Path.Combine(@"F:\Desktop\长江水文", folder, file);  //定义文件的路径 if (!Directory.Exists(filePath)) //判断文件夹是否存在,不存在,则先建立文件夹路径 { Directory.CreateDirectory(folderPath); //创建文件夹 } File.WriteAllText(filePath, webBrowser1.Document.Body.InnerText); //写入文件,不存在,则直接创建!

 

---------------------------------------------------------------------------------------------------------

            ╔════════╗
╠════╣    第A2个    ╠══════════════════════════════════════════════════╣
            ╚════════╝

●·● Directory 类

1. 公开用于创建、移动和枚举通过目录和子目录的静态方法。

2. Directory 方法(s):

  • CreateDirectory(String):在指定路径创建所有目录和子目录。【静态】
  • Delete(String):从指定路径删除空目录。【静态】
  • Delete(String, Boolean):删除指定的目录并(如果指示)删除该目录中的所有子目录和文件。【静态】
  • Exists:确定给定路径是否引用磁盘上的现有目录。【静态】
  • GetCreationTime:获取目录的创建日期和时间。【静态】
  • GetCurrentDirectory:获取应用程序的当前工作目录。就是 debug/bin 目录!
  • GetDirectoryRoot:返回指定路径的卷信息、根信息或两者同时返回。
  • GetFiles(String):返回指定目录中文件的名称(包括其路径)。【静态】
  • GetFiles(String, String):返回指定目录中与指定的搜索模式匹配的文件的名称(包含它们的路径)。
  • GetFiles(String, String, SearchOption):返回指定目录中与指定的搜索模式匹配的文件的名称(包含它们的路径),并使用一个值以确定是否搜索子目录。
       SearchOption 枚举
    • TopDirectoryOnly:仅在搜索中包括当前目录。
    • AllDirectories:在搜索操作中包括当前目录和所有子目录。
                string text = null;
    FolderBrowserDialog fbd = new FolderBrowserDialog();
    if (fbd.ShowDialog() != DialogResult.OK)
    return;
    string[] files = Directory.GetFiles(fbd.SelectedPath, "*.txt"); //选择 文本文件!
    foreach (string file in files)
    {
    text += file + "\r\n";
    }
    MessageBox.Show(text);
  • Move:将文件或目录及其内容移到新位置。【静态】

---------------------------------------------------------------------------------------------------------

            ╔════════╗
╠════╣    第A3个    ╠══════════════════════════════════════════════════╣
            ╚════════╝

●·● Path 类

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

2. Path 方法:

  • ChangeExtension:更改路径字符串的扩展名。
  • Combine (String()):
    richTextBox1.Text = Path.Combine(@"d:\Files");
    richTextBox1.Text = Path.Combine(@"d:\Files", "23");
    richTextBox1.Text = Path.Combine(@"d:\Files", "2008", "23");
    richTextBox1.Text = Path.Combine(@"d:\Files", "2008", "01", "23");
    richTextBox1.Text = Path.Combine(@"d:\Files", "2008", "01", "02", "23");
    richTextBox1.Text = Path.Combine(@"d:\Files", "2008", "01", "02", "23", "23");
    richTextBox1.Text = Path.Combine(@"d:\Files", "2008", "01", "02", "23", "01", "23");
    richTextBox1.Text = Path.Combine(@"d:\Files", "2008", "01", "02", "23", "01", "02", "23");
    //不受参数多少的影响
    //d:\Files\2008\01\02\23\01\02\23
  • GetDirectoryName:返回指定路径字符串的目录信息。【静态】
    Path.GetDirectoryName(Application.ExecutablePath)        //执行文件所在的目录
    显示:E:\360data\重要数据\我的文档\Visual Studio 2010\Projects\倒计时\钢琴\bin\Debug
  • GetFileName:返回指定路径字符串的文件名和扩展名。【静态】
    Path.GetFileName(Application.ExecutablePath)        //执行文件的名称
    显示:钢琴.EXE
  • GetExtension:返回指定的路径字符串的扩展名。【静态】
  • GetFileNameWithoutExtension:返回不具有扩展名的指定路径字符串的文件名。【静态】
  • GetFullPath:返回指定路径字符串的绝对路径。【静态】
  • GetPathRoot:获取指定路径的根目录信息。
  • GetRandomFileName:返回随机文件夹名或文件名。
  • HasExtension:确定路径是否包括文件扩展名。
  • IsPathRooted:获取指示指定的路径字符串是否包含根的值。

---------------------------------------------------------------------------------------------------------

            ╔════════╗
╠════╣    第A4个    ╠══════════════════════════════════════════════════╣
            ╚════════╝

●·● StreamReader 类

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

2. StreamReader 构造函数:

  • StreamReader(Stream):为指定的流初始化 StreamReader 类的新实例。
                    using (FileStream fileStream = File.OpenRead(openFileDialog1.FileName))
    {
    using (StreamReader streamReader = new StreamReader(fileStream, System.Text.Encoding.Default))
    {
    //有些编码格式没办法显示正常的中文,添加 System.Text.Encoding.Default 就OK了
    }
    }
  • StreamReader(String):为指定的文件名初始化 StreamReader 类的新实例。
                        using (StreamReader streamReader = new StreamReader(Path))
    {
    }
  • StreamReader(Stream, Boolean):用指定的字节顺序标记检测选项,为指定的流初始化 StreamReader 类的一个新实例。
  • StreamReader(Stream, Encoding):用指定的字符编码为指定的流初始化 StreamReader 类的一个新实例。
  • StreamReader(String, Boolean):为指定的文件名初始化 StreamReader 类的新实例,带有指定的字节顺序标记检测选项。
  • StreamReader(String, Encoding):用指定的字符编码,为指定的文件名初始化 StreamReader 类的一个新实例。
  • StreamReader(Stream, Encoding, Boolean):为指定的流初始化 StreamReader 类的新实例,带有指定的字符编码和字节顺序标记检测选项。
  • StreamReader(String, Encoding, Boolean):为指定的文件名初始化 StreamReader 类的新实例,带有指定的字符编码和字节顺序标记检测选项。
  • StreamReader(Stream, Encoding, Boolean, Int32):为指定的流初始化 StreamReader 类的新实例,带有指定的字符编码、字节顺序标记检测选项和缓冲区大小。
  • StreamReader(String, Encoding, Boolean, Int32):为指定的文件名初始化 StreamReader 类的新实例,带有指定字符编码、字节顺序标记检测选项和缓冲区大小。
  • View Code - 获取txt中的汉字文本
     1             using (StreamReader sr = new StreamReader(@"E:\Desktop\1.txt", System.Text.Encoding.Default))
    2 {
    3 string s = "";
    4 StringBuilder sb = new StringBuilder();
    5 while ((s = sr.ReadLine()) != null)
    6 {
    7 sb.AppendLine(s);
    8 }
    9 textBox1.Text = sb.ToString();
    10 }
  • View Code - 第二种方法
    1             using (StreamReader sr = new StreamReader(@"E:\Desktop\1.txt", System.Text.Encoding.Default))
    2 {
    3 textBox1.Text = sr.ReadToEnd().ToString();
    4 }

3. StreamReader 方法:

  • Read:读取输入字符串中的下一个字符或下一组字符。
  • ReadLine: 从当前流中读取一行字符并将数据作为字符串返回。
            private void button1_Click(object sender, EventArgs e)
    {
    OpenFileDialog ofd = new OpenFileDialog();
    ofd.InitialDirectory = @"F:\Desktop";
    ofd.Filter = "text|*.txt";
    if (ofd.ShowDialog() == DialogResult.OK)
    {
    using (StreamReader streamReader = new StreamReader(ofd.FileName))
    {
    string str;
    while ((str = streamReader.ReadLine()) != null) //没读到最后
    {
    textBox1.Text += str + "\r\n";
    }
    }
    }
    }
  • ReadToEnd:从流的当前位置到末尾读取流。
            private void button1_Click(object sender, EventArgs e)
    {
    OpenFileDialog ofd = new OpenFileDialog();
    ofd.InitialDirectory = @"F:\Desktop";
    ofd.Filter = "text|*.txt";
    if (ofd.ShowDialog() == DialogResult.OK)
    {
    using (StreamReader streamReader = new StreamReader(ofd.FileName))
    {
    string r = null;
    r = streamReader.ReadToEnd();
    textBox1.Text = r;
    }
    }
    }

---------------------------------------------------------------------------------------------------------

            ╔════════╗
╠════╣    第A5个    ╠══════════════════════════════════════════════════╣
            ╚════════╝

●·● StreamWriter 类

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

2. StreamWriter 构造函数:

  • StreamWriter(Stream):用 UTF-8 编码及默认缓冲区大小,为指定的流初始化 StreamWriter 类的一个新实例。
  • StreamWriter(String):使用默认编码和缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。
  • StreamWriter(Stream, Encoding):用指定的编码及默认缓冲区大小,为指定的流初始化 StreamWriter 类的新实例。
  • StreamWriter(String, Boolean): 使用默认编码和缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。 如果该文件存在,则可以将其覆盖或向其追加。 如果该文件不存在,则此构造函数将创建一个新文件。
  • StreamWriter(Stream, Encoding, Int32):用指定的编码及缓冲区大小,为指定的流初始化 StreamWriter 类的新实例。
  • StreamWriter(String, Boolean, Encoding): 使用指定编码和默认缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。 如果该文件存在,则可以将其覆盖或向其追加。 如果该文件不存在,则此构造函数将创建一个新文件。
  • StreamWriter(String, Boolean, Encoding, Int32): 使用指定编码和缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。 如果该文件存在,则可以将其覆盖或向其追加。 如果该文件不存在,则此构造函数将创建一个新文件。

3. StreamWriter 方法:

  • Dispose:释放由 TextWriter 对象占用的所有资源。
  • Write:将×××写入流。直接写入~
  • WriteLine:将行结束符写入文本流。输入完成后,在末尾加一个回车~
            private void button1_Click(object sender, EventArgs e)
    {
    OpenFileDialog ofd = new OpenFileDialog();
    ofd.InitialDirectory = @"F:\Desktop";
    ofd.Filter = "text|*.txt";
    if (ofd.ShowDialog() == DialogResult.OK)
    {
    using (StreamWriter streamWriter = new StreamWriter(ofd.FileName))
    {
    streamWriter.WriteLine(textBox1.Text);
    streamWriter.WriteLine(textBox1.Text);
    }
    }
    }

---------------------------------------------------------------------------------------------------------

            ╔════════╗
╠════╣    第A6个    ╠══════════════════════════════════════════════════╣
            ╚════════╝

●·● FileWriter 类

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

2. FileStream 属性:

  • Length:获取用字节表示的流长度。
  • Name:获取传递给构造函数的 FileStream 的名称。

3. FileStream 方法:

  • Write: 使用从缓冲区读取的数据将字节块写入该流。 (重写 Stream.Write(Byte(), Int32, Int32)。)
  • WriteByte: 将一个字节写入文件流的当前位置。 (重写 Stream.WriteByte(Byte)。)
                using(FileStream fs = File.Create(path,1024))
    {
    fs.WriteByte(Convert.ToByte('U'));
    }
    fs.WriteByte(85)

---------------------------------------------------------------------------------------------------------

            ╔════════╗
╠════╣    第A7个    ╠══════════════════════════════════════════════════╣
            ╚════════╝

●·● FileStream 类

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

2. FileStream 构造函数:

  • FileStream (String, FileMode):使用指定的路径和创建模式初始化 FileStream 类的新实例。
  • FileStream (String, FileMode, FileAccess):使用指定的路径、创建模式和读/写权限初始化 FileStream 类的新实例。 

---------------------------------------------------------------------------------------------------------

            ╔════════╗
╠════╣    第A8个    ╠══════════════════════════════════════════════════╣
            ╚════════╝

 

●·● FileInfo 类

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

2. FileInfo 属性:

  • CreationTime:获取或设置当前文件或目录的创建时间。【返回 DateTime】
  • Directory:获取父目录的实例。【返回 DirectoryInfo】
  • DirectoryName:获取表示目录的完整路径的字符串。
  • Exists:获取指示文件是否存在的值。
  • Extension:获取表示文件扩展名部分的字符串。
  • FullName:获取目录或文件的完整目录。
  • IsReadOnly:获取或设置确定当前文件是否为只读的值。
  • LastAccessTime:获取或设置上次访问当前文件或目录的时间。
  • LastWriteTime:获取或设置上次写入当前文件或目录的时间。
  • Length: 获取当前文件的大小(字节)。【/1024.0 = kb、/1024.0/1024 = mb】
  • Name:获取文件名。

3. FileInfo 方法:

  • AppendText:创建一个 StreamWriter,它向 FileInfo 的此实例表示的文件追加文本。【返回 StreamWriter】
  • CreateText:创建写入新文本文件的 StreamWriter。                       【返回 StreamWriter】

  • OpenText:创建使用 UTF8 编码、从现有文本文件中进行读取的 StreamReader 【返回 StreamReader】
  • Create:创建文件。                                                                     【返回 FileStream】
  • Open (FileMode):在指定的模式中打开文件。                             【返回 FileStream】
       FileMode 枚举
    • CreateNew:指定操作系统应创建新文件。
    • Create:指定操作系统应创建新文件。 如果文件已存在,它将被覆盖。
    • Open:指定操作系统应打开现有文件。
    • OpenOrCreate:指定操作系统应打开文件(如果文件存在);否则,应创建新文件。
    • Truncate:指定操作系统应打开现有文件。 文件一旦打开,就将被截断为零字节大小。
    • Append:若存在文件,则打开该文件并查找到文件尾,或者创建一个新文件。
  • Open (FileMode, FileAccess):用读、写或读/写访问权限在指定模式下打开文件。【返回 FileStream】
       FileAccess 枚举
    • Read: 对文件的读访问。 可从文件中读取数据。 Write 组合即构成读写访问权。
    • Write: 文件的写访问。 可将数据写入文件。 Read 组合即构成读/写访问权。
    • ReadWrite: 对文件的读访问和写访问。 可从文件读取数据和将数据写入文件。
  • OpenRead:创建只读 FileStream                                                【返回 FileStream】
  • OpenWrite:创建只写 FileStream                                               【返回 FileStream】

  • CopyTo (String):将现有文件复制到新文件,不允许覆盖现有文件。
  • CopyTo (String, Boolean):将现有文件复制到新文件,允许覆盖现有文件。 
  • Delete:永久删除文件。
  • MoveTo:将指定文件移到新位置,并提供指定新文件名的选项。
  • Replace (String, String):使用当前 FileInfo 对象所描述的文件替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。
      destinationFileName:要替换为当前文件的文件的名称。
      destinationBackupFileName:文件的名称,该文件用于创建 destFileName 参数所描述的文件的备份。
    将当前文件删掉,内容转移到 destinationFileName 中,将 destinationFileName 中的内容转移到 destinationBackupFileName
  • Replace (String, String, Boolean):使用当前 FileInfo 对象所描述的文件替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。 还指定是否忽略合并错误。 

---------------------------------------------------------------------------------------------------------

            ╔════════╗
╠════╣    第A9个    ╠══════════════════════════════════════════════════╣
            ╚════════╝

●·● DirectoryInfo 类

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

2. DirectoryInfo 属性:

 

  • CreationTime:获取或设置当前文件或目录的创建时间。
  • Extension:为"",空字符串,可用来区分文件和文件夹!
  • Exists:获取指示目录是否存在的值。
  • FullName:获取目录或文件的完整目录。
  • LastAccessTime:获取或设置上次访问当前文件或目录的时间。
  • LastWriteTime:获取或设置上次写入当前文件或目录的时间。
  • Name:获取此 DirectoryInfo 实例的名称。
  • Parent:获取指定子目录的父目录。【返回 DirectoryInfo】
  • Root:获取路径的根部分。【返回 DirectoryInfo】

3. DirectoryInfo 方法:

  • Create:创建目录。
  • Delete: 如果此 DirectoryInfo 为空,则删除它。
  • Delete (Boolean):删除 DirectoryInfo 的此实例,指定是否删除子目录和文件。

  • GetDirectories:返回当前目录的子目录。
  • GetDirectories (String):返回当前 DirectoryInfo 中、与给定搜索条件匹配的目录的数组。
      例如,“System*”可用于搜索所有以单词“System”开头的目录。
  • GetDirectories (String, SearchOption):返回当前 DirectoryInfo 中与给定的搜索条件匹配并使用某个值确定是否在子目录中搜索的目录的数组。
       SearchOption 枚举
    • TopDirectoryOnly:仅在搜索中包括当前目录。
    • AllDirectory: 在搜索操作中包括当前目录和所有子目录。 此选项在搜索中包括重解析点,比如安装的驱动器和符号链接。
                foreach (DirectoryInfo d in directory.GetDirectories("*", SearchOption.AllDirectories))
    {
    richTextBox1.Text += string.Format("{0:00} ", count) + d.FullName + "\n";
    count++;
    }

     

  • EnumerateDirectories:返回当前目录中的目录信息的可枚举集合。
  • EnumerateDirectories (String):返回与指定的搜索模式匹配的目录信息的可枚举集合。
  • EnumerateDirectories (String, SearchOption):返回与指定的搜索模式和搜索子目录选项匹配的目录信息的可枚举集合。
          EnumerateDirectoriesGetDirectories 方法不同点在于:当使用 EnumerateDirectories时,您可以在返回整个集合之前开始枚举 DirectoryInfo 对象的集合;当您使用 GetDirectories 时,则必须等待整个 DirectoryInfo 数组都被返回后才能访问数组。 因此,在处理许多文件和目录时,EnumerateDirectories 可能更高效。
                foreach (var d in directory.EnumerateDirectories("*", SearchOption.AllDirectories))
    {
    richTextBox1.Text += string.Format("{0:00} ", count) + d.FullName + "\n"; //很强大的 var!
    count++;
    }
  • GetFiles:返回当前目录的文件列表。
  • GetFiles (String):返回当前目录中与给定的搜索模式匹配的文件列表。
  • GetFiles (String, SearchOption):返回与给定的搜索模式匹配并且使用某个值确定是否在子目录中进行搜索的当前目录的文件列表。

  • EnumerateFiles:
  • EnumerateFiles (String):
  • EnumerateFiles (String, SearchOption):

  • GetFileSystemInfos:返回表示某个目录中所有文件和子目录的强类型 FileSystemInfo 项的数组。
  • GetFileSystemInfos (String):
  • GetFileSystemInfos (String, SearchOption):
                foreach (var d in directory.GetFileSystemInfos("*", SearchOption.AllDirectories))
    {
    if (d.Extension == "")
    {
    richTextBox1.Text += string.Format("{0:00} ", count) + "文件夹\n" + d.FullName + "\n"; //扩展名为""的是文件夹
    }
    else
    {
    richTextBox1.Text += string.Format("{0:00} ", count) + "文件\n" + d.FullName + "\n";
    }
    count++;
    }
  • EnumerateFileSystemInfos:返回当前目录中的文件系统信息的可枚举集合。
  • EnumerateFileSystemInfos (String):
  • EnumerateFileSystemInfos (String, SearchOption):

  • Gettype:获取当前实例的 Type
                foreach (var d in directory.GetFileSystemInfos("*", SearchOption.AllDirectories))
    {
    if (d.GetType() == typeof(DirectoryInfo)) //判断实例的类型
    {
    richTextBox1.Text += string.Format("{0:00} ", count) + "文件夹\n" + d.FullName + "\n";
    }
    else
    {
    richTextBox1.Text += string.Format("{0:00} ", count) + "文件\n" + d.FullName + "\n";
    }

    count++;
    }
  • MoveTo:DirectoryInfo 实例及其内容移动到新路径。

---------------------------------------------------------------------------------------------------------

            ╔════════╗
╠════╣    第G1个    ╠══════════════════════════════════════════════════╣
            ╚════════╝

●·● FileSystemInfo 类

1. FileInfoDirectoryInfo 对象提供基类。

 

 

 

 

 

posted on 2012-01-22 15:11  McDelfino  阅读(1254)  评论(0编辑  收藏  举报