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 ランタイムを使用して名前を変更する
RenameFile
オブジェクトの My.Computer.FileSystem
メソッドを使用して、ファイルへの完全なパスと新しいファイル名を指定して、ファイルの名前を変更します。 このメソッドを使用して、ファイルを別のディレクトリに移動することはできません。 ファイルを移動する方法については、「 方法: 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 コード スニペットが用意されています。 このスニペットは、 ファイル システム (ドライブ、フォルダー、ファイルの処理) にあります。 詳細については、「 コード スニペット」を参照してください。
堅牢なプログラミング
次の条件が原因で例外が発生する可能性があります。
- パスは、長さ 0 の文字列、空白のみを含む、無効な文字が含まれている、またはデバイス パス (\\.\で始まる) (ArgumentException) のいずれかの理由で無効です。
-
newName
にはパス情報 (ArgumentException) が含まれています。 - パスは
Nothing
(ArgumentNullException) であるため、無効です。 -
newName
がNothing
または空の文字列 (ArgumentNullException) です。 - ソース ファイルが無効であるか、存在しない (FileNotFoundException)。
-
newName
(IOException) で指定された名前の既存のファイルまたはディレクトリがあります。 - パスがシステム定義の最大長 (PathTooLongException) を超えています。
- パス内のファイル名またはディレクトリ名にコロン (:)または無効な形式 (NotSupportedException) が含まれています。
- ユーザーには、パスを表示するために必要なアクセス許可がありません (SecurityException)。
- ユーザーに必要なアクセス許可 (UnauthorizedAccessException) がありません。
こちらも参照ください
.NET