我需要执行一些动作,这些动作由传递的字符串启动,并且根据该字符串是文件、文件夹还是web url来决定采取哪些动作。
对于文件,我将文件复制到存储库中;对于文件夹,我正在创建一个快捷方式.lnk并将其复制到存储库中;对于web url,我正在创建一个快捷方式.url并将其复制到存储库中。
我开发了一个解决方案,但它不够健壮;我会偶尔出现误识别字符串的错误。我使用的方法是计算字符串中的点数,并应用以下规则:
对于文件,我将文件复制到存储库中;对于文件夹,我正在创建一个快捷方式.lnk并将其复制到存储库中;对于web url,我正在创建一个快捷方式.url并将其复制到存储库中。
我开发了一个解决方案,但它不够健壮;我会偶尔出现误识别字符串的错误。我使用的方法是计算字符串中的点数,并应用以下规则:
If Dots = 1 Then... it's a file.
If Dots < 1 Then... it's a folder.
If Dots > 1 Then... it's a website.
我后来发现了一些网络上的函数,通过使用它们我进一步改进了它:
Dots = Len(TargetPath) - Len(Replace(TargetPath, ".", "")) ' Crude check for IsURL (by counting Dots)
If CheckFileExists(TargetPath) = True Then Dots = 1 ' Better check for IsFile
If CheckFolderExists(TargetPath) = True Then Dots = 0 ' Better check for IsFolder
问题是,我仍然在处理两种情况时遇到问题:
当文件名包含额外的点时,例如
\Report.01.doc
当字符串是远程内部网络位置上的文件夹或文件时(我认为这可能会误识别为Web URL)。
非常感谢您提供任何有关正确方向的指导。
汤姆 H
CreateObject("vbscript.regexp")
或者设置对 Windows Script Host 对象的引用。你会发现很多正则表达式可以用于这种情况。你也可以看看 FileSystemObject。它有很多不错的方法。 - Fionnuala