0

我有下面的代码,它从一个文件夹中复制文件,如果不存在则创建一个新文件夹,然后将文件粘贴到那里。我得到一个找不到路径的错误..意思是如果我想在 c 中创建一个新文件夹:\versions\myfolder 它没有创建路径并抛出错误..我在这里做错了什么。

Dim LastMonth
Dim strFolder 
Const  strFile = "C:\inetpub\wwwroot\Shared"
Const Overwrite = True
Dim oFSO

LastMonth = DateAdd("m",-1,Date)

strFolder = "C:\Versions\" & "Common_" & Replace(LastMonth,"/","-")&"/"
Set oFSO = CreateObject("Scripting.FileSystemObject")

WScript.Echo strFolder
If Not oFSO.FolderExists(strFolder) Then
  oFSO.CreateFolder strFolder
End If

oFSO.CopyFolder strFile, strFolder, Overwrite

为了使问题易于理解,我还尝试执行此操作 oFSO.CreateFolder("C:\Versions\Shared") 但它不起作用。

4

2 回答 2

3

您可以通过向上递归遍历路径直到找到现有的父文件夹来创建文件夹,包括其父文件夹,然后在返回时创建子文件夹:

Set fso = CreateObject("Scripting.FileSystemObject")

Sub CreateSubFolder(path)
  If Not fso.FolderExists(path) Then
    drive = fso.GetDriveName(path)
    If Not fso.DriveExists(drive) Then
      WScript.Echo "Drive " & drive & " doesn't exist."
      WScript.Quit 1
    End If
    parent = fso.GetParentFolderName(path)
    If Not fso.FolderExists(parent) Then CreateSubFolder parent
    fso.CreateFolder path
  End If
End Sub

CreateSubFolder "C:\path\to\some\distant\sub\folder"
于 2013-06-18T20:50:35.013 回答
1
  • 不能同时创建文件夹和子文件夹,父文件夹必须存在才能创建子文件夹。
  • /您在文件夹名称中放置正斜杠 ( ) 而不是路径中的反斜杠 ( \) 。strFolder(错字?!)

希望有帮助

于 2013-06-18T17:20:10.067 回答