0

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

Private Sub btn_CopiarFiles_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_CopiarFiles.Click Dim itemChecked As Object Const quote 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

问题是,而不是复制 from: C:\TestDirectory1\document.docto C:\TestDirectory2\document.doc C:\TestDirectory1\doc1\document1.docto C:\TestDirectory2\doc1\document1.doc C:\TestDirectory1\doc1\doc2\document2.doctoC:\TestDirectory2\doc1\doc2\document2.doc

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

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

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

谢谢

4

1 回答 1

0

我手动创建了目录列表,.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
于 2013-11-12T04:28:18.643 回答