VSTO开发入门教程
上QQ阅读APP看书,第一时间看更新

3.1 文件与文件夹操作

■3.1.1 System.IO命名空间

System.IO命名空间包含允许读写文件和数据流的类型以及提供基本文件和目录支持的类型。System.IO常用的类如表3.1所示。

表3.1 System.IO常用的类

上表中的每一个类都有一系列的用法,比如File类,这是一个处理文件的类,文件的移动、删除、重命名、创建都可以用File类实现。而Path类和Directory类用来处理路径,也就是文件夹。

■3.1.2 文件与文件夹处理实例

下面的范例首先判断了abc.ppt文件是否存在,如果存在则删除。代码中第9行判断一个文件夹是否存在。代码中第13行用GetFiles方法列出了文件夹中所有文件的完整路径。

    1         public void文件与文件夹操作()
    2         {   //using System.IO
    3             bool b = System.IO.File.Exists(@"F:\abc.ppt");
    4             if (b==true)
    5             {
    6                  result = b.ToString();
    7                  System.IO.File.Delete(@"F:\abc.ppt"); //删除文件
    8             }
    9             bool f = Directory.Exists(@"F:\VSTO");
    10            if (f == true)
    11            {
    12                 result =f.ToString();
    13                 string[] arr = Directory.GetFiles(@"F:\VSTO"); //列举文件夹中所有文件
    路径
    14                 for(int i = 0; i < arr.Length; i++)
    15                 {
    16                     result += arr[i] + "\n";
    17                 }
    18             }
    19         }

与此对应的VBA代码如下:

    1  Public Sub文件与文件夹操作()
    2     '引用Scripting runtime
    3     Dim FSO As New Scripting.FileSystemObject
    4     Dim b As Boolean, f As Boolean
    5     Dim fl As File
    6     b = FSO.FileExists("E:\VBA\RegExp\百家姓.txt")
    7     If b Then
    8         result = CStr(b)
    9         FSO.DeleteFile "E:\VBA\RegExp\百家姓.txt" '删除文件
    10     End If
    11     f = FSO.FolderExists("E:\VBA\RegExp")
    12     Iff Then
    13        result = CStr(f)
    14         For Each fl In FSO.GetFolder("E:\VBA\RegExp").Files '列举文件夹中所有文件
    路径
    15            result = result & fl.Name & vbNewLine
    16        Next fl
    17     End If
    18 End Sub