VB 路径或文件访问错误
采用VB写一程序,启动窗口后通过LoadResData函数在生成电脑中我的文档目录生成123.exe文件(属性为只读&隐藏&保存)!编写程序完成后第一次运行,可生成123...
采用VB写一程序,启动窗口后通过LoadResData函数在生成电脑中我的文档目录生成123.exe文件(属性为只读 & 隐藏 & 保存)!编写程序完成后第一次运行,可生成123.exe,可再次运行该程序,出现“实时错误“75”,VB 路径/文件访问错误”!我的想法是,在第二次运行时先检查123.exe是否存在,如存在则跳过再次生成exe文件这一步,可是依然出现上述错误提出!请各位高手帮忙解决,谢谢!
程序主要代码如下:
Private Sub Form_Load()
Dim sTmp As String * MAX_LEN '存放结果的固定长度的字符串
Dim nLength As Long '字符串的实际长度
Dim pidl As Long '某特殊目录在特殊目录列表中的位置
'****************获得我的文档********
SHGetSpecialFolderLocation 0, MYDOCUMENTS, pidl
SHGetPathFromIDList pidl, sTmp
cdLocation= Left(sTmp, InStr(sTmp, Chr(0)) - 1)+ "\123.exe"
If Dir("cdLocation,vbhidden") = "" Then '判断文件是否存在
bFile = LoadResData(101, "CUSTOM") '读出101号资源
Open cdLocation For Binary Access Write As #1
Put #1, , bFile '生成exe文件
Close #1
SetAttr cdLocation, 1 + 2 + 32 '将生成的文件属性改为只读 & 隐藏 & 保存
End Sub
代码 SetAttr cdLocation, 1 + 2 + 32 '将生成的文件属性改为只读 & 隐藏 & 保存,之后当然还有一个END IF,刚才粘贴忘记了!请各位大侠帮忙,最好直接在该程序上修改!
mafan8老兄,你提供的方案还是不对!请大家继续! 展开
程序主要代码如下:
Private Sub Form_Load()
Dim sTmp As String * MAX_LEN '存放结果的固定长度的字符串
Dim nLength As Long '字符串的实际长度
Dim pidl As Long '某特殊目录在特殊目录列表中的位置
'****************获得我的文档********
SHGetSpecialFolderLocation 0, MYDOCUMENTS, pidl
SHGetPathFromIDList pidl, sTmp
cdLocation= Left(sTmp, InStr(sTmp, Chr(0)) - 1)+ "\123.exe"
If Dir("cdLocation,vbhidden") = "" Then '判断文件是否存在
bFile = LoadResData(101, "CUSTOM") '读出101号资源
Open cdLocation For Binary Access Write As #1
Put #1, , bFile '生成exe文件
Close #1
SetAttr cdLocation, 1 + 2 + 32 '将生成的文件属性改为只读 & 隐藏 & 保存
End Sub
代码 SetAttr cdLocation, 1 + 2 + 32 '将生成的文件属性改为只读 & 隐藏 & 保存,之后当然还有一个END IF,刚才粘贴忘记了!请各位大侠帮忙,最好直接在该程序上修改!
mafan8老兄,你提供的方案还是不对!请大家继续! 展开
2个回答
推荐于2016-02-16 · 知道合伙人软件行家
关注
展开全部
路径/文件访问错误(错误 75):
在文件访问或磁盘访问操作期间,例如,Open、MkDir、ChDir 或
RmDir,操作系统不能连接路径和文件名连接。此错误有以下的原因和解决方法:
1)文件指定的格式不正确。
文件名可以包含完整限定的(绝对)或相对的路径。完整限定的路径以驱动器名称(如果路径在另一台驱动器上)为开始,并且列出从根目录到文件的路径。任何非完整限定的路径都是相对于当前驱动器和目录的。
2)试图保存到只读文件上。
修改目标文件的只读属性或以其他文件名保存。
3)在顺序 Output 或 Append 模式下试图打开只读文件。
以 Input
方式打开文件,或是要修改文件的只读属性。
详细信息,可选取有问题的项目,并按下 F1 键。
在文件访问或磁盘访问操作期间,例如,Open、MkDir、ChDir 或
RmDir,操作系统不能连接路径和文件名连接。此错误有以下的原因和解决方法:
1)文件指定的格式不正确。
文件名可以包含完整限定的(绝对)或相对的路径。完整限定的路径以驱动器名称(如果路径在另一台驱动器上)为开始,并且列出从根目录到文件的路径。任何非完整限定的路径都是相对于当前驱动器和目录的。
2)试图保存到只读文件上。
修改目标文件的只读属性或以其他文件名保存。
3)在顺序 Output 或 Append 模式下试图打开只读文件。
以 Input
方式打开文件,或是要修改文件的只读属性。
详细信息,可选取有问题的项目,并按下 F1 键。
展开全部
你把这句改下就好了
If Dir("cdLocation,vbhidden") = "" Then
改为
If Dir("cdLocation",vbReadOnly + vbHidden + vbArchive) = "" Then
你出现这种错误只可能是文件存在不可读写,你原来的语句中双引号括到了("cdLocation,vbhidden") ,硬盘里根本不可能有这个文件,所以返回一直是空值,就会一直执行then,我的语句也和你一样出现了错误,主要是我从你这里直接复制过来的,cdLocation是个变量,所以应该这么改,你试一试
If Dir(cdLocation,vbReadOnly + vbHidden + vbArchive) = "" Then
vbReadOnly + vbHidden + vbArchive的意思就是你后面设置的1+2+32
If Dir("cdLocation,vbhidden") = "" Then
改为
If Dir("cdLocation",vbReadOnly + vbHidden + vbArchive) = "" Then
你出现这种错误只可能是文件存在不可读写,你原来的语句中双引号括到了("cdLocation,vbhidden") ,硬盘里根本不可能有这个文件,所以返回一直是空值,就会一直执行then,我的语句也和你一样出现了错误,主要是我从你这里直接复制过来的,cdLocation是个变量,所以应该这么改,你试一试
If Dir(cdLocation,vbReadOnly + vbHidden + vbArchive) = "" Then
vbReadOnly + vbHidden + vbArchive的意思就是你后面设置的1+2+32
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询