【发布时间】:2011-04-16 20:36:50
【问题描述】:
我的 VB6 程序在首先确认该文件夹不存在后使用 Mkdir 创建一个文件夹,使用这个再简单不过的代码:
If LenB(Dir$(ImportFolder & "\" & UuidPartOfImportFolderName, vbDirectory)) = 0 Then
MkDir ImportFolder & "\" & sIECommon2.gstrUniqueImportUuid
End If
当我在自己的开发环境中,从 IDE 内部运行此代码,甚至在本地计算机上运行 .exe 时,它都运行良好——文件夹按预期创建,然后其他文件在其中成功创建.
但是当我构建可执行文件并将其安装在另一台机器上时,Mkdir 命令会抛出错误“错误 75:路径/文件访问错误”。 (我通过在它之前和之后放置一个 MsgBox 命令来将其缩小到这个命令——之前的会显示,但之后的不会。)
根据我的研究,使用 Mkdir 创建的文件夹的默认权限是每个人的 rwx ...那么为什么它会在其他机器上而不是我的机器上引发错误?
或者它可能与它运行的机器无关——我只是没有其他理论。另一个奇怪的是,这个程序已经在其他地方使用 MkDir 多年了;我刚刚在添加其他功能时添加了这个新功能。
谢谢您-期待您的回复。
【问题讨论】:
-
除非您告诉我们 ImportFolder 是什么,否则很难说。但是,我不知道您从哪里得到制作文件夹的想法,将其安全性设置为除了其父文件夹作为子对象的继承安全性之外的任何内容。例如,许多“常见”特殊文件夹具有所有者安全性。
-
ImportFolder 为:C:\Documents and Settings\Username\Application Data\CompanyName\ProductName\Import
-
如果新创建的文件夹上的安全性是从父级继承的,那就没问题了,因为它在用户的配置文件中。然而运行这个程序的用户却得到了错误。
-
您正在检查
FolderX,但创建了可能已经预设的FolderY。还要确保父文件夹存在 (C:\...\ProductName\Import) -
你在两台机器上运行什么操作系统?我敢打赌,它运行的那个运行的是 Windows XP,而它不运行的那个运行的是 Vista 或 7。