为什么VB6 MkDir命令在其他机器上抛出错误75,而在我的机器上却没有?

为什么VB6 MkDir命令在其他机器上抛出错误75,而在我的机器上却没有?,vb6,mkdir,Vb6,Mkdir,我的VB6程序首先确认文件夹不存在后,使用Mkdir创建一个文件夹,代码非常简单: If LenB(Dir$(ImportFolder & "\" & UuidPartOfImportFolderName, vbDirectory)) = 0 Then MkDir ImportFolder & "\" & sIECommon2.gstrUniqueImportUuid End If 当我在自己的开发环境中,从IDE内部运行这段代码,甚至在本地计算机上运行.e

我的VB6程序首先确认文件夹不存在后,使用Mkdir创建一个文件夹,代码非常简单:

If LenB(Dir$(ImportFolder & "\" & UuidPartOfImportFolderName, vbDirectory)) = 0 Then
  MkDir ImportFolder & "\" & sIECommon2.gstrUniqueImportUuid
End If
当我在自己的开发环境中,从IDE内部运行这段代码,甚至在本地计算机上运行.exe时,它工作得非常好——文件夹按预期创建,然后在其中成功创建了其他文件

但是,当我构建可执行文件并将其安装到另一台机器上时,Mkdir命令抛出错误“error 75:Path/File Access error”。(我把它缩小到这个命令的范围,在它前面和后面放一个MsgBox命令——前面的命令显示,后面的命令不显示。)

根据我的研究,使用Mkdir创建的文件夹的默认权限是rwx for everyone…那么为什么它会在其他机器上抛出错误,而不是在我的机器上呢

或者可能它和它运行的机器无关——我只是没有其他的理论。另一件奇怪的事情是,这个程序已经在其他地方使用MkDir多年了;我在添加附加功能时刚刚添加了这个新功能


谢谢您--期待您的回复。

我怀疑WQW的答案是正在发生的事情,但是,您可能希望验证这两台计算机是否运行相同版本的VB6运行时(MSVBVM6.dll)。有几个版本。这是一个很长的机会,但一个人的行为可能与另一个人略有不同


但是,我还是有点怀疑,我怀疑您使用的两个文件夹名称并不完全相同。

除非您告诉我们什么是重要文件夹,否则很难说。然而,我不知道你是从哪里想到制作一个文件夹的,它的安全性除了父文件夹作为子对象继承的安全性之外,还可以设置其他任何东西。例如,许多“常用”特殊文件夹都具有所有者安全性。ImportFolder是:C:\Documents and Settings\Username\Application Data\CompanyName\ProductName\ImportIt如果新创建的文件夹上的安全性是从父文件夹继承的,就可以了,因为它位于用户的配置文件中。但是运行此程序的用户会收到错误。您正在检查
FolderX
,但正在创建可能已预设的
FolderY
。还要确保父文件夹存在(C:\…\ProductName\Import)您在这两台计算机上运行的是什么操作系统?我敢打赌,它运行的是Windows XP,而它不运行的是Vista或7。我们最终解决了这个问题,将MkDir的使用替换为:Dim objDir作为新脚本。FileSystemObject objDir.CreateFolder ImportFolder&“\”&UuidPartOfImportFolderName感谢大家的回复。