方法 : Visual Basic でファイルの名前を変更する
Visual Basic では、ファイルの名前を変更する方法が 2 つあります。 Visual Basic ランタイム オブジェクト My.Computer.FileSystem
または .NET で提供される System.IO.File
オブジェクトを使用して、ファイルの名前を変更できます。
.NET を使用して名前を変更する
System.IO.File
オブジェクトには、ファイルの名前を変更するメソッドは含まれません。代わりに、Move
メソッドを使用してファイルを同じ場所に、異なるファイル名で移動します。 このメソッドを使用して、ファイルを別の名前で別の場所に移動し、移動と名前の変更を一緒に実行することもできます。
次の例では、My Documents
フォルダー内のファイルの名前を TextFile.txt
から NewName.txt
に変更します。
Dim myDocsFolder As String = My.Computer.FileSystem.SpecialDirectories.MyDocuments
Dim filePathSource = System.IO.Path.Combine(myDocsFolder, "TextFile.txt")
Dim filePathTarget = System.IO.Path.Combine(myDocsFolder, "NewName.txt")
System.IO.File.Move(filePathSource, filePathTarget)
Visual Basic ランタイムを使用して名前を変更する
My.Computer.FileSystem
オブジェクトの RenameFile
メソッドを使用して、ファイルへの完全なパスと新しいファイル名を指定してファイルの名前を変更します。 このメソッドは、ファイルを別のディレクトリに移動する場合には使用できません。 ファイルを移動する方法については、「方法: ファイルを移動する (Visual Basic)」を参照してください。
次の例では、My Documents
フォルダー内のファイルの名前を TextFile.txt
から NewName.txt
に変更します。
Dim myDocsFolder As String = My.Computer.FileSystem.SpecialDirectories.MyDocuments
Dim filePath = System.IO.Path.Combine(myDocsFolder, "TextFile.txt")
My.Computer.FileSystem.RenameFile(filePath, "NewName.txt")
Visual Studio には、My.Computer.FileSystem.RenameFile
を使用する IntelliSense コード スニペットが用意されています。 このスニペットは、[ファイル システム - ドライブ、フォルダー、およびファイルの処理] にあります。 詳細については、「Code Snippets」を参照してください。
信頼性の高いプログラミング
次の条件では例外が発生する可能性があります。
- パスが有効ではない。原因として、長さ 0 の文字列であるか、空白のみが含まれているか、無効な文字が含まれているか、デバイス パスである (先頭が \\.\ である) ことが考えられる (ArgumentException)。
newName
にパス情報が含まれている (ArgumentException)。- パスが
Nothing
であるため無効である (ArgumentNullException)。 newName
がNothing
または空の文字列である (ArgumentNullException)。- ソース ファイルが無効であるか、存在しない (FileNotFoundException)。
newName
で指定された名前のファイルまたはディレクトリが既に存在する (IOException)。- パスがシステムで定義されている最大長を超えている (PathTooLongException)。
- パス内のファイル名またはディレクトリ名にコロン (:) が含まれているか、または形式が無効である (NotSupportedException)
- ユーザーがパスを参照するのに必要なアクセス許可がない (SecurityException)
- ユーザーに必要なアクセス許可がない (UnauthorizedAccessException)。
関連項目
.NET