VBA进阶 | 文件操作15:FileSystemObject对象及其方法和属性(7)

更新日期:2019-04-14
完美Excel

学习Excel技术,关注微信公众号:

excelperfect

 

本文重点讲解FileSystemObject对象的GetFolder方法GetParentFolderName方法GetSpecialFolder方法GetTempName方法

 

GetFolder方法

 

GetFolder方法返回Folder对象。其语法为:

oFileSysObj.GetFolder (FolderPath)

其中:

1.oFileSysObj代表任何能返回FileSystemObject对象的对象变量。

2.参数FolderPath必需,指定所需文件夹的路径,String类型,可以为相对路径或路径。如果FolderPath是共享名或网络路径,GetFolder确认该驱动器或共享是File对象创建进程的一部分。如果FolderPath的任何部分不能连接或不存在,就会产生一个错误。

 

说明:

1.要获得所需的Path字符串,首先应该使用GetAbsolutePathName方法。如果FolderPath包含一个网络驱动器或共享,可以在调用GetFolder方法之前使用DriveExists方法确认指定的驱动器是否可用。由于GetFolder方法要求FolderPath是一个有效文件夹的路径,所以应调用FolderExists方法来检验FolderPath是否存在。

2.必须使用Set语句将Folder对象赋给一个局部对象变量。

 

示例

下面的程序列出C盘中的所有文件:

Sub FilesInFolder()

    Dim fs As Object

    Dim objFolder As Object

    Dim objFile As Object

    Set fs =CreateObject("Scripting.FileSystemObject")

    Set objFolder =fs.GetFolder("C:\")

    Workbooks.Add

    For Each objFile InobjFolder.Files

        ActiveCell.Select

        Selection.Formula =objFile.Name

        ActiveCell.Offset(0,1).Range("A1").Select

        Selection.Formula =objFile.Type

        ActiveCell.Offset(1,-1).Range("A1").Select

    Next

   Columns("A:B").Select

    Selection.Columns.AutoFit

End Sub

 

在我的电脑上运行上述代码后的结果如下图1所示。

1

 

GetParentFolderName方法

 

返回给定路径中最后部分前的文件夹名,其语法为:

oFileSysObj.GetParentFolderName (Path)

其中:

1.oFileSysObj代表任何能够返回FileSystemObject对象的对象变量。

2.参数Path必需,指定路径说明,String类型。

 

说明:

1.如果从Path中不能确定父文件夹名,就返回一个零长字符串(””)。Path可以为相对路径或路径。可以是网络驱动器或共享。

2.GetParentFolderName方法不能检验Path的某个部分是否存在。

3.GetParentFolderName方法认为Path中不属于驱动器说明的那部分字符串除了最后一部分外余下的字符串就是父文件夹。除此之外它不做任何其他检测,更像是一个字符串解析和处理例程而不是与对象处理有关的例程。

 

GetSpecialFolder方法

 

GetSpecialFolder方法返回操作系统文件夹路径,其中0代表Windows文件夹,1代表System(系统)文件夹,2代表Temp(临时)文件夹。其语法为:

oFileSysObj.GetSpecialFolder (SpecialFolder)

其中:

1.oFileSysObj代表任何能够返回FileSystemObject对象的对象变量。

2.参数SpecialFolder必需,为特殊的文件夹常数,表示三种特殊系统文件夹中其中一个的值。

 

说明:

1.可以使用Set语句将Folder对象赋给一个局部对象变量,但是如果只对检索特殊的文件夹感兴趣,就可以使用下列语句来实现:

sPath=oFileSys.GetSpecialFolder (iFolderConst)

或者:

sPath=oFileSys.GetSpecialFolder (iFolderConst).Path

2.由于Path属性是Folder对象的缺省属性,所以个语句有效。因为不是给一个对象变量赋值,所以赋给sPath的值是缺省的Path属性值,而不是对象引用。

 

示例

获取并显示特定文件夹路径:

Sub SpecialFolders()

    Dim fs As Object

    Dim strWindowsFolder AsString

    Dim strSystemFolder AsString

    Dim strTempFolder AsString

    Set fs =CreateObject("Scripting.FileSystemObject")

    strWindowsFolder =fs.GetSpecialFolder(0)

    strSystemFolder =fs.GetSpecialFolder(1)

    strTempFolder = fs.GetSpecialFolder(2)

    MsgBox strWindowsFolder& vbCrLf & strSystemFolder & vbCrLf _

        & strTempFolder,vbInformation + vbOKOnly, "特定文件夹"

End Sub

 

在我的电脑上运行上述代码后的结果如下图2所示。

2

 

GetTempName方法

返回系统创建的一个临时文件或文件夹名。其语法为:

oFileSysObj.GetTempName

其中:

oFileSysObj代表任何能够返回FileSystemObject对象的对象变量。

 

说明:

1.GetTempName方法不能创建临时文件或文件夹,它仅仅提供一个可用于CreateTextFile方法的文件或文件夹名。

2.一般来说,不必创建自已的临时文件名。WindowsWindows API中提供了一种算法来创建特殊的临时文件或文件夹名,这样Windows才能识别它们。GetTempName很好地包装了GetTempFilename API函数。


今日推荐
----------------------------------------
友情链接:再造一个至尊 乐仕力 霖碧 西亚斯思开 末日神游 衍水星空 胜利油田处长被杀 墨西尼斯战役 诸葛文库 劲舞汉堡 杨致远官场飙升记 苑国辉sxhkstv 制止狂乱 韩路平 xiaojvdeqiutian 好记星早学好 shotloc 销魂中唐 视讯堂 两天一夜120122 局长成长史 yieyazi 燕王征巧术人 杭美玉 品众服饰搭配 刘舜泽 司马爱郭嘉 懒人谷 旱獭子 修罗之刻国语 廖彦评 pkghost 刘彩星前夫 金津杓 涟漪诊疗所 herfair 幻想游戏平台 泷川雅美qvod 情剑天下txt 如意坊貔貅 晴空物语宠物进化 虐杀2加拉佛 酒醉误入狐狸窝 依稀大地湾 男扮女装追忆记 莫克瓦尔 lol伊芙蕾雅丝沫照 江北第一才子txt 一受封疆在线阅读 n0887