【发布时间】:2017-05-02 15:21:53
【问题描述】:
我正在做一个练习,它使用 Dir() 来确定当前目录(即与我正在使用的工作簿相同的目录)中是否存在文件。给出的代码 - 并且显然在视频示例中工作 - 是这样的:
IsThere = (Dir("SomeFile.xlsx") <> "")
当我运行此代码时,IsThere 返回False。我可以使用以下方法解决它:
IsThere = (Dir(ActiveWorkbook.Path & "\SomeFile.xlsx") <> "")
但我想知道为什么 Dir 默认没有按预期在当前目录中查找。
我正在努力寻找任何相关的建议。我发现的有关如何使用 Dir() 的大多数示例都带有指定的文件路径,因此它们并没有真正阐明我的问题。我找到的最接近的是this (obsolete) MSDN reference,上面写着:
为了正确运行,Dir 函数需要将 FileIOPermission 的 Read 和 PathDiscovery 标志授予执行代码。
问题是,我不太了解其中有关如何将 PathDiscovery 设置为 1 的链接建议。
至于 StackOverflow,this 可能是最接近我的问题的 - 尽管它使用指定的路径,并且我 不 引用网络位置。我注意到this question 的答案似乎假定 Dir() 应该以预期的方式工作,即使用简单的文件名而不是完全指定的路径。
【问题讨论】:
-
这里的答案是,如果您正在测试特定位置的文件,则在对
Dir()的调用中包含路径 - 例如,不要使用(例如)Dir("test.xlsx"),而是使用Dir("C:\Folder\Folder2\test.xlsx")