2016-11-02 19 views
0

私の店には5台のPCがあります。3台のWindows 7と2台のWindows XPがあります。すべてのPCは、アカウントを持つ異なるユーザーによって操作されます(アカウント名は異なります)。 「論文」(ユニーク)と呼ばれるメインフォルダはすべてのPCのデスクトップにあります。フォルダ "papers"には、サブフォルダとファイルも含まれています。私は、USBのルートからアプリケーションをクリックしたときに、そのフォルダ(論文)をUSBスティックにコピーしたいと思います。符号化においてデスクトップフォルダからVB.net経由で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. 

、Iは、単一のファイル(Java_OOPs.docx)としてFileToCopyの値を割り当てます。私はFileToCopyの値を変更して、 "papers"フォルダ全体を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 
+3

あなたはhttps://msdn.microsoft.com/en-us/library/xz2d9afk.aspxを試みたことがありますか? –

+0

いいえ、リンクにはコピーディレクトリが表示されます。どのように私のために役立つのですか? –

+0

@testteam、あなたがやっていることはディレクトリからのコピーなのですから? –

答えて

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 
+0

ありがとうございます。 これは私が期待していたものです。 –

+0

改良のためのアイデア: 'Drive.RootDirectory.FullName'を' IO.Directory.CreateDirectory(IO.Path.Combine(Drive.RootDirectory.FullName、Environment.UserName))。FullName'に置き換えて、ユーザーの名前のUSBドライブとそれにファイルをコピーするので、複数のユーザーやマシンで同じUSBを使用できます。 – MrGadget

+0

Mm。それは良いアイデアです... –

関連する問題