方法 : Visual Basic で特定のパターンを持つファイルをディレクトリにコピーする

GetFiles メソッドは、ファイルのパス名を表す文字列の読み取り専用のコレクションを返します。 wildCards パラメーターを使用して、特定のパターンを指定できます。

一致するファイルが見つからない場合は、空のコレクションが返されます。

CopyFile メソッドを使用して、ファイルをディレクトリにコピーできます。

特定のパターンを持つファイルをディレクトリにコピーするには

  1. GetFiles メソッドを使用して、ファイルの一覧を返します。 この例は、指定したディレクトリ内のすべての .rtf ファイルを返します。

    For Each foundFile As String In My.Computer.FileSystem.GetFiles(
        My.Computer.FileSystem.SpecialDirectories.MyDocuments,
        Microsoft.VisualBasic.FileIO.SearchOption.SearchTopLevelOnly, "*.rtf")
    
  2. CopyFile メソッドを使用して、ファイルをコピーします。 この例では、 testdirectoryという名前のディレクトリにファイルをコピーします。

    My.Computer.FileSystem.CopyFile(foundFile, "C:\testdirectory\" & My.Computer.FileSystem.GetName(foundFile))
    
  3. For ステートメントを Next ステートメントで閉じます。

    Next
    

次の例は、上記のスニペットを完全な形で示したもので、指定したディレクトリのすべての .rtf ファイルを testdirectoryという名前のディレクトリにコピーします。

For Each foundFile As String In My.Computer.FileSystem.GetFiles(
    My.Computer.FileSystem.SpecialDirectories.MyDocuments,
    Microsoft.VisualBasic.FileIO.SearchOption.SearchTopLevelOnly, "*.rtf")

    My.Computer.FileSystem.CopyFile(foundFile, "C:\testdirectory\" & foundFile)
Next

.NET Framework のセキュリティ

次の条件を満たす場合は、例外が発生する可能性があります。

  • パスが有効ではありません。原因として、長さが 0 の文字列であるか、空白のみが含まれているか、無効な文字が含まれているか、デバイス パスである (先頭が \\.\ である) ことが考えられます (ArgumentException)。

  • パスが Nothing であるため、有効でない (ArgumentNullException)

  • ディレクトリが存在しない (DirectoryNotFoundException)。

  • ディレクトリが既存のファイルを指している (IOException)。

  • パスがシステムで定義されている最大長を超えている (PathTooLongException)。

  • パス内のファイル名またはディレクトリ名にコロン (:) が含まれているか、または形式が無効である (NotSupportedException)

  • ユーザーがパスを参照するのに必要なアクセス許可がない (SecurityException) ユーザーに必要な権限がない (UnauthorizedAccessException)。

関連項目