【问题标题】:Copy dirs and structure with Directory.GetFiles and File.Copy in visual basic 2010在 Visual Basic 2010 中使用 Directory.GetFiles 和 File.Copy 复制目录和结构
【发布时间】:2013-11-11 03:57:23
【问题描述】:

我得到了这段代码,我试图复制一些 doc 文件,同时创建 dir 结构。

Private Sub btn_CopiarFiles_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 处理 btn_CopiarFiles.Click 暗淡 itemChecked As Object const 引用 As String = """"

    For Each itemChecked In chklist_extensiones.CheckedItems


        For Each archivo In Directory.GetFiles("C:\TestDirectory1", itemChecked.ToString(), SearchOption.AllDirectories)

            If File.Exists(archivo) Then
                Dim InfoArchivo As FileInfo = My.Computer.FileSystem.GetFileInfo(archivo)
                Dim InfoDirectorio As DirectoryInfo = InfoArchivo.Directory


                File.Copy(archivo, _
                Path.Combine("C:\TestDirectory2\" + Path.GetFileName(InfoDirectorio.FullName) + "\", Path.GetFileName(archivo)), True)
            End If
        Next

    Next      


End Sub

事情是,而不是从复制: C:\TestDirectory1\document.docC:\TestDirectory2\document.doc C:\TestDirectory1\doc1\document1.docC:\TestDirectory2\doc1\document1.doc C:\TestDirectory1\doc1\doc2\document2.docC:\TestDirectory2\doc1\doc2\document2.doc

是以这种方式复制和创建目录 C:\TestDirectory1\document.docC:\TestDirectory2\TestDirectory1\document.doc C:\TestDirectory1\doc1\document1.docC:\TestDirectory2\doc1\document1.doc C:\TestDirectory1\doc1\doc2\document2.docC:\TestDirectory2\doc2\document2.doc

我很确定修复有点简单,但我真的没有看到...

你们中有人看到我的代码有什么问题吗?

谢谢

【问题讨论】:

    标签: visual-studio-2010 vb.net-2010


    【解决方案1】:

    我手动创建了目录列表,使用.FullName 获取完整路径,并使用.Remove 删除源目录(如 C:\testDirectory)并将其存储到 var 中(SubDir

    然后我用DirDestino + SubDir整理命运

    这是代码

    Dim Subdir As String
    
            For Each itemChecked In chklist_extensiones.CheckedItems
    
                For Each archivo In Directory.GetFiles(DirOrigen, itemChecked.ToString(), SearchOption.AllDirectories)
    
                    If File.Exists(archivo) Then
                        Dim InfoArchivo As FileInfo = My.Computer.FileSystem.GetFileInfo(archivo)
                        Dim InfoDirectorio As DirectoryInfo = InfoArchivo.Directory
    
                        If DirOrigen = (InfoDirectorio.FullName + "\") Or DirOrigen = InfoDirectorio.FullName Then
    
                            'If the dir don't exist then I create it
                            If Not (My.Computer.FileSystem.DirectoryExists(DirDestino)) Then
                                My.Computer.FileSystem.CreateDirectory(DirDestino)
                            End If
    
                            File.Copy(archivo, DirDestino + Path.GetFileName(archivo), True)
                        Else
    
                            Subdir = InfoDirectorio.FullName
    
                            Subdir = Subdir.Remove(0, Len(DirOrigen))
    
                            MsgBox(Subdir)
                            My.Computer.FileSystem.CreateDirectory( _
                                Path.Combine(DirDestino + Subdir + "\"))
                            File.Copy(archivo, _
                            Path.Combine(DirDestino + Subdir + "\", Path.GetFileName(archivo)), True)
                        End If
    
                    End If
                Next
    
            Next
    

    【讨论】:

      猜你喜欢
      • 2016-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      • 2013-08-05
      • 2011-02-13
      相关资源
      最近更新 更多