gpt4 book ai didi

使用 FSO 的 VBA 移动文件夹使文件夹保持使用状态

转载 作者:行者123 更新时间:2023-12-04 14:42:26 27 4
gpt4 key购买 nike

我正在使用以下代码循环访问目录中的“.csv”文件并将它们移动到新目录(strRootDir 和 strTargetDir 是已启动的局部变量):

Dim objFile As file
Dim objFSO As FileSystemObject: Set objFSO = New FileSystemObject
Dim objFolder As Folder: Set objFolder = objFSO.GetFolder(strRootDir)

For Each objFile In objFolder.Files

If InStr(1, objFile.Name, ".csv") Then

FileFolderExists strTargetDir, True
objFile.Move (strTargetDir)

End If

Next objFile

Set objFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing

方法“FileFolderExists”定义为:

Public Sub FileFolderExists(strFullPath As String, bMkDir As Boolean)
Dim bExists As Boolean
If Not Dir(strFullPath, vbDirectory) = vbNullString Then bExists = True
If Not bExists And bMkDir Then MkDir strFullPath
End Sub

我的问题是,一旦此过程完成,如果我尝试删除目录“strTargetDir”,我会收到一条错误消息,指出该文件夹正在被另一个程序使用。

如何阻止这种情况发生?

最佳答案

您看到的是一个 Ghost 文件。探险家有一种奇怪的固执习惯:)

这里是 another scenario这说明了“幽灵文件”

只需发出一个 Dir 命令来提醒资源管理器在您移动文件后该文件不再存在,一切都会好的:)

Ret = Dir(Path_And_FileName_Which_Was_Moved)

另外,为什么要使用 fso 来移动文件?这是一行命令

Name "C:\Path1\File1.Ext" As "C:\Path2\File2.Ext"

这样也不会留下GHOST文件

关于使用 FSO 的 VBA 移动文件夹使文件夹保持使用状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20241331/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com