【问题标题】:How to copy files from desktop folder to usb via VB.net如何通过 VB.net 将文件从桌面文件夹复制到 USB
【发布时间】:2016-11-02 04:27:32
【问题描述】:

我店里有 5 台电脑 3 windows 7 和 2 windows XP。每台 PC 由不同的用户使用他们的帐户操作(帐户名称不同)。每台 PC 的桌面中都有一个名为“papers”(唯一)的主文件夹。文件夹“papers”还包含子文件夹和文件。当我从 USB 的根目录单击应用程序时,我想将该文件夹(文件)复制到我的 USB 记忆棒。

User 1 : C:\Users\Peter\Desktop\papers\
User 2 : C:\Users\Ruwan\Desktop\papers\
User 3 : C:\Users\Sam\Desktop\papers\
User 4 : C:\Users\Roshy\Desktop\papers\
User 5 : C:\Users\Veronica\Desktop\papers\

Here the user's name is change to different users.

在编码中,我将 FileToCopy 的值分配为单个文件 (Java_OOPs.docx)。我想更改 FileToCopy 值,将整个“论文”文件夹复制到 USB。

我的问题是如何将文件夹(论文)和子文件夹复制到 USB 和桌面文件夹的通用名称(因为用户名正在更改)(访问桌面“论文”文件夹)

注意:此应用程序也可以在 Windows XP 上运行。

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Dim Gig As Long = 1073741824
    Dim FileToCopy As String = "C:\Users\Peter\Desktop\papers\Java_OOPs.docx"

    Try
        For Each drive As System.IO.DriveInfo In System.IO.DriveInfo.GetDrives
            If drive.DriveType = IO.DriveType.Removable AndAlso drive.IsReady AndAlso drive.AvailableFreeSpace >= 2 * Gig Then

                Dim DriveLetter As String = drive.Name
                Dim PathToUSBDrive = DriveLetter & IO.Path.GetFileName(FileToCopy)
                IO.File.Copy(FileToCopy, PathToUSBDrive)

            End If
        Next
    Catch ex As Exception
    End Try

End Sub

End Class

【问题讨论】:

  • 不,但链接说的是复制目录。它对我有什么帮助?
  • @testteam,因为你正在做的是从目录复制?
  • 我想从桌面文件文件夹中复制文件和子文件夹。
  • 以防万一:您知道文件夹 = 目录,对吧?

标签: vb.net windows-7


【解决方案1】:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim Gig As Long = 1073741824L
        Dim FolderToCopy As String = IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.Desktop, "papers")

        Try
            For Each Drive As IO.DriveInfo In IO.DriveInfo.GetDrives
                Select Case True
                    Case Not Drive.DriveType = IO.DriveType.Removable
                    Case Not Drive.IsReady
                    Case Not Drive.AvailableFreeSpace >= 2 * Gig
                    Case Else
                        Debug.Print("Copying {0} to {1}", FolderToCopy, Drive.RootDirectory.FullName)
                        My.Computer.FileSystem.CopyDirectory(FolderToCopy, Drive.RootDirectory.FullName, True)

                        ' Only do the copy once to first appropriate drive
                        Exit For
                End Select
            Next
        Catch ex As Exception
            Debug.Print(ex.ToString)
        End Try

    End Sub

End Class

【讨论】:

  • 改进思路:将Drive.RootDirectory.FullName替换为IO.Directory.CreateDirectory(IO.Path.Combine(Drive.RootDirectory.FullName, Environment.UserName)).FullName,这将在用户名的U盘根目录下创建一个文件夹并将文件复制到其中,这样就可以使用同一个U盘了适用于多个用户或机器。
  • 我怎样才能从桌面复制所有内容(文件、文件夹和子文件夹),而不是复制整个文件夹“papers”。
  • 将代码示例顶部的IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.Desktop, "papers") 替换为My.Computer.FileSystem.SpecialDirectories.Desktop
  • 我应该怎么做才能运行这个可以在 Windows XP 上运行的应用程序?
  • XP 已死,但您可以尝试将其编译为 .Net 3.5 或更低版本。
猜你喜欢
  • 2012-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-26
  • 1970-01-01
  • 1970-01-01
  • 2014-03-04
  • 1970-01-01
相关资源
最近更新 更多