上QQ阅读APP看书,第一时间看更新
1.8 其他实用方法
FSO对象还提供了一些实用的小方法,如表1-12所示。
表1-12 FSO对象的实用方法
下例将演示各种实用方法的使用。
FSOUtil.asp
<%@codepage=936%> <% Response.Charset = "GBK" Set fso = CreateObject("Scripting.FileSystemObject") '组合路径 newpath = fso.BuildPath("c:\aaa", "Sub Folder") Response.Write newpath & "<br>" '相对路径转为绝对路径 absolutePath = fso.GetAbsolutePathName("abc.txt ") Response.Write absolutePath & "<br>" '路径中文件夹的名字 baseName = fso.GetBaseName("c:\aa\bb") Response.Write baseName & "<br>" '路径中文件的名字(不包括扩展名) baseName = fso.GetBaseName("c:\aa\bb\cc.txt") Response.Write baseName & "<br>" '驱动器名称 driveName = fso.GetDriveName("c:\aa\bb\cc.txt") Response.Write driveName & "<br>" '文件扩展名 extensionName = fso.GetExtensionName ("c:\aa\bb\cc.txt") Response.Write extensionName & "<br>" '文件名
fileName = fso.GetFileName ("c:\aa\bb\cc.txt") Response.Write fileName & "<br>" '文件版本 fileVersion = fso.GetFileVersion ("C:\WINDOWS\hh.exe") Response.Write fileVersion & "++++<br>" '父文件夹路径 parentFolderName = fso.GetParentFolderName("c:\aa\bb\cc.txt") Response.Write parentFolderName & "<br>" '生成随机文件名 tempName = fso.GetTempName() Response.Write tempName & "<br>" Set fso = Nothing %>
运行结果如图1-9所示。
图1-9 各种实用方法的使用
除了GetTempName方法,其他方法都有参数path。这些方法都不会验证这个path是否实际存在,只是根据字符串中的表面关系来取得结果。
在实际应用中,GetAbsolutePathName方法可能让人比较困惑,因为这里有一个当前路径的概念。在之前的例子中,参数的路径使用的都是绝对路径,也就是以“C:\”“D:\”等开头的完整路径,实际上这些参数都是可以使用相对路径的。使用相对路径就需要知道当前路径,FSO默认的当前路径是系统目录的system32文件夹(如XP就是C:\WINDOWS\system32),而不是当前ASP文件所在的路径。比如创建文件的时候,只写了一个文件名,那么这个文件就被创建到system32目录下,而不是当前ASP文件所在的目录下。
GetAbsolutePathName方法的参数与结果的对应关系也不利于人理解,举例如表1-13所示。
表1-13 GetAbsolutePathName方法举例
看看结果,是不是有些不得要领呢?实际上,这个语句类似于DOS命令中的cd命令。“C:”和“D:”等(不带反斜杠)是切换盘符的,而每个盘符都保持一个当前路径,所以切换后的当前路径是该盘符之前保持的那个路径。“C:\”和“D:\”等(带反斜杠的)则是切换到盘符根目录的。
DOS命令的执行演示如图1-10所示。
图1-10 DOS命令执行演示
相对路径让人不易分辨,所以还是尽量使用绝对路径。