VB怎么解除对文件夹的锁定

Carlven2012 2015-07-26 10:26:05
比如VB写的程序用CommonDialog控件打开了某个文件夹里面的文件,操作结束后,发现无法删除或移动那个文件夹了,提示被程序占用,必须退出程序才行(甚至调试时必须退出VB)。

Private Sub Form_DblClick()
Dim s As String
CommonDialog1.ShowOpen
Open CommonDialog1.FileName For Input As #1
Line Input #1, s
Text1.Text = s
Close #1
End Sub


请问在我不退出程序的情况下,如何让解除对那个文件夹的占用?
...全文
353 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Carlven2012 2015-07-27
  • 打赏
  • 举报
回复
引用 2 楼 bakw 的回复:
就像这样

Private Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String)
Private Sub Form_DblClick()
    Dim s As String
    CommonDialog1.ShowOpen
    Open CommonDialog1.FileName For Input As #1
    Line Input #1, s
    Text1.Text = s
    Close #1
    SetCurrentDirectory App.Path
End Sub
试过了,没用。
笨狗先飞 2015-07-27
  • 打赏
  • 举报
回复
Const cdlOFNNoChangeDir = 8 MSComDlg.FileOpenConstants 的成员 Sets the current directory to what it was when the dialog box was invoked. 4楼的省事
舉杯邀明月 2015-07-27
  • 打赏
  • 举报
回复
加上 CommonDialog1.Flags = 8 这句之后,调试运行时也没问题了。
舉杯邀明月 2015-07-27
  • 打赏
  • 举报
回复
哦,知道差别了: 我在你的 CommonDialog1.ShowOpen 之前,加了一句: CommonDialog1.Flags = 8 就是这一句,你的问题就能搞定了。
舉杯邀明月 2015-07-27
  • 打赏
  • 举报
回复
我刚才试了一下,调试时,确实如你说的那样;但编译后的 .exe 运行没有这种问题啊。
笨狗先飞 2015-07-27
  • 打赏
  • 举报
回复
就像这样

Private Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String)
Private Sub Form_DblClick()
    Dim s As String
    CommonDialog1.ShowOpen
    Open CommonDialog1.FileName For Input As #1
    Line Input #1, s
    Text1.Text = s
    Close #1
    SetCurrentDirectory App.Path
End Sub
笨狗先飞 2015-07-27
  • 打赏
  • 举报
回复
使用一个API Private Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long 文件夹使用结束后 调用 SetCurrentDirectory App.Path 把位置转移到自己EXE位置下,这样,那里就可以删了
Carlven2012 2015-07-27
  • 打赏
  • 举报
回复
引用 5 楼 Chen8013 的回复:
哦,知道差别了: 我在你的 CommonDialog1.ShowOpen 之前,加了一句: CommonDialog1.Flags = 8 就是这一句,你的问题就能搞定了。
确实。 搞了半天。 后来我用ChDir "C:\"也解决这问题了。 :)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧