shaluoshuxia 发表于 2016-7-15 17:19:25

FileExists无法判断CLSID特定文件夹

本帖最后由 shaluoshuxia 于 2016-7-15 17:28 编辑

比如:
$path = “::{031E4825-7B94-4DC3-B131-E946B44C8DD5}” ;Libraries文件夹CLSID,该文件夹存在
ConsoleWrite(FileExists($path))

此时FileExists()返回0,文件夹不存在。
看来FileExists()函数不支持CLSID。

请问,有什么方法可以判断CLSID特殊文件夹是否存在?

chamlien 发表于 2016-7-15 23:40:49

用注册表试试

虫子樱桃 发表于 2016-7-16 20:29:18


#include <WinAPIShellEx.au3>
$DirDownload=_WinAPI_ShellGetKnownFolderPath('{374DE290-123F-4565-9164-39C4925E467B}')
MsgBox(0,'',$DirDownload)

chamlien 发表于 2016-7-16 22:47:41

回复 3# 虫子樱桃


    API有这个,牛逼收藏了

mshuking 发表于 2016-7-17 23:10:36

学习了。。。。

shaluoshuxia 发表于 2016-7-18 10:53:19

本帖最后由 shaluoshuxia 于 2016-7-18 10:54 编辑

回复 3# 虫子樱桃

多谢大樱桃给出的API函数,不过我验证过了_WinAPI_ShellGetKnownFolderPath支持GUID不支持CLSID。
同样的CLSID
FileSelectFolder("选择文件夹.", "::{645FF040-5081-101B-9F08-00AA002F954E}", 1)就可以打开指定的路径。

Local Const $sFOLDERID_wrong = "::{645FF040-5081-101B-9F08-00AA002F954E}"
ConsoleWrite('"' & _WinAPI_ShellGetKnownFolderPath($sFOLDERID_wrong) & '" @error = ' & @error & ' @extended = 0x' & Hex(@extended) & @CRLF)
_WinAPI_ShellGetKnownFolderPath($sFOLDERID_wrong)显示为空。

改成Local Const $sFOLDERID_wrong = "{645FF040-5081-101B-9F08-00AA002F954E}"
同样显示为空。

firstk 发表于 2016-7-19 07:33:20

又是一个API,学习了
页: [1]
查看完整版本: FileExists无法判断CLSID特定文件夹