首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CopyFolder还是Robocopy

CopyFolder还是Robocopy
EN

Stack Overflow用户
提问于 2020-10-21 22:12:56
回答 1查看 75关注 0票数 0

我正在尝试使用CopyFolder方法将PDF文件从映射的远程目录复制到我的本地计算机。我得到了一个‘权限被拒绝’的错误,我相信它可能是试图复制隐藏或系统文件。我想保留从源文件夹结构,只需要PDF。有没有办法用CopyFolder来做到这一点,或者我应该改用像robocopy这样的外壳命令呢?

到目前为止,我的代码如下:

代码语言:javascript
复制
Public Sub DownloadFiles(FSOFolder As Object)

    Dim MyFSO As FileSystemObject
    Set MyFSO = New Scripting.FileSystemObject
    
    Dim FSOSubFolder As Object
    Dim FSOFile As Object
    
    MyFSO.CopyFolder FSOFolder.path & "*", "C:\Users\UserName\Desktop\Temp"
'code continues

文件夹已创建,但在尝试复制第一个文件时似乎出错。感谢大家的建议。

EN

回答 1

Stack Overflow用户

发布于 2020-10-21 22:52:47

您可以尝试使用错误处理单独复制文件,以忽略您无权复制的文件。在这种方法下,您将需要手动创建文件夹。

下面是展示这一概念的示例代码。我没有测试它。

代码语言:javascript
复制
Sub CopyFiles()
  Dim FSO as FileSystemObject
  Dim DestinationFolder as Folder
  Dim CopyFolder as Folder

  Set FSO = New FileSystemObject

  Set DestinationFolder = FSO.GetFolder("Your Path to Copy To")
  Set CopyFolder = FSO.GetFolder("Your Path to Copy From")

  Call Recurse(CopyFolder, DestinationFolder)
End Sub

Sub Recurse(CopyFolder as Folder, DesintationFolder as Folder)
  Dim SubFolder as Folder
  Dim File as File

  On Error Resume Next
  For Each File in CopyFolder.Files
    FSO.CopyFile(File.Path, DestinationFolder.Path & "\")
  Next File
  On Error GoTo 0

  For Each SubFolder in CopyFolder.Subfolders
    Call Recurse(SubFolder, FSO.CreateFolder(DestinationFolder.Path & "\" & SubFolder.Name))
  Next SubFolder
End Sub

如果您对此有任何问题,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64465464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档