ここではVB.NETのファイルの基本操作について紹介します。

ファイルの操作

ファイルが存在するか確認する(File.Existsメソッド)

Dim fileName As String = "C:\temp\test.txt"
If System.IO.File.Exists(fileName) Then
    Console.WriteLine(fileName & "は存在します。")
Else
    Console.WriteLine(fileName & "は存在しません。")
End If


ファイル名を変更するFile.Moveメソッド)

Move(String, String) では、既に同じ名前のファイルが存在した場合は変更できません。

System.IO.File.Move("C:\temp\test.txt", "C:\temp\newtest.txt")

既に同じ名前のファイルが存在しても変更したい場合は、Move(String, String, True) と記述します。

System.IO.File.Move("C:\temp\test.txt", "C:\temp\newtest.txt", True)


ファイルをコピーする(File.Copyメソッド)

Copy(String, String) では、既に同じ名前のファイルが存在した場合は上書きできません。

System.IO.File.Copy("C:\temp\test.txt", "C:\temp\newtest.txt")

既に同じ名前のファイルが存在しても上書きしたい場合は、Copy(String, String, True) と記述します。

System.IO.File.Copy("C:\temp\test.txt", "C:\temp\newtest.txt", True)


ファイルを削除する(File.Deleteメソッド)

Dim fileName As String = "C:\temp\test.txt"
System.IO.File.Delete(fileName)


ファイル名を取得する(FileInfoメソッドのNameプロパティ)

Nameプロパティは、ファイルの名前を取得します。

Dim fileName As String = "C:\temp\test.txt"
Dim file As New System.IO.FileInfo(fileName)
Console.WriteLine(file.Name) ' 結果:test.txt


ファイルサイズを取得する(FileInfoメソッドのLengthプロパティ)

Lengthプロパティは、ファイルのサイズをバイト単位で取得します。

Dim fileName As String = "C:\temp\test.txt"
Dim file As New System.IO.FileInfo(fileName)
Console.WriteLine(file.Length)


ファイル拡張子を取得する(FileInfoメソッドのExtensionプロパティ)

Extensionプロパティは、ファイルの拡張子部分を表す文字列を取得します。

Dim fileName As String = "C:\temp\test.txt"
Dim file As New System.IO.FileInfo(fileName)
Console.WriteLine(file.Extension) ' 結果:.txt


ファイルの格納フォルダを取得する(FileInfoメソッドのDirectoryNameプロパティ)

DirectoryNameプロパティは、ファイルが格納されているフォルダの絶対パスを取得します。

Dim fileName As String = "C:\temp\test.txt"
Dim file As New System.IO.FileInfo(fileName)
Console.WriteLine(file.DirectoryName) ' 結果:C:\temp


ファイルのタイムスタンプを取得する

Dim fileName As String = "C:\temp\test.txt"
' 作成日時の取得
Console.WriteLine(System.IO.File.GetCreationTime(fileName))
' 更新日時の取得
Console.WriteLine(System.IO.File.GetLastWriteTime(fileName))
' アクセス日時の取得
Console.WriteLine(System.IO.File.GetLastAccessTime(fileName))


フォルダの操作

フォルダが存在するか確認する(Directory.Existsメソッド)

Dim directoryName As String = "C:\temp"
If System.IO.Directory.Exists(directoryName) Then
    Console.WriteLine(directoryName & "は存在します。")
Else
    Console.WriteLine(directoryName & "は存在しません。")
End If


フォルダを作成する(Directory.CreateDirectoryメソッド)

Dim directoryName As String = "C:\temp"
System.IO.Directory.CreateDirectory(directoryName)


フォルダ名を変更するDirectory.Moveメソッド)

既に同じ名前のフォルダが存在した場合は変更できません。

System.IO.Directory.Move("C:\temp", "C:\temp2")


フォルダを削除するDirectory.Deleteメソッド)

Delete(String) では、空のフォルダしか削除できません。

Dim directoryName As String = "C:\temp"
System.IO.Directory.Delete(directoryName)

Delete(String, Boolean) では、第2引数にTrueを指定するとフォルダの中身も削除します。第2引数をFalseを指定すると空のフォルダしか削除できません。

Dim directoryName As String = "C:\temp"
' フォルダの中身も削除する
System.IO.Directory.Delete(directoryName, True)


フォルダ内が空か調べる(Directory.EnumerateFileSystemEntriesメソッド)

Dim directoryName As String = "C:\temp"
If System.IO.Directory.EnumerateFileSystemEntries(directoryName).Any() Then
    Console.WriteLine("フォルダ内は空ではありません。")
End If


フォルダ内のファイル名を取得する(Directory.GetFilesメソッド)

Dim directoryName As String = "C:\temp"
Dim files As String() = System.IO.Directory.GetFiles(directoryName, "*", System.IO.SearchOption.AllDirectories)
For Each fileName In files
    Console.WriteLine(fileName)
Next


パスからフォルダ名を取得する(Path.GetDirectoryNameメソッド)

Dim fileName As String = "C:\temp\test.txt"
Console.WriteLine(System.IO.Path.GetDirectoryName(fileName)) '結果:C:\temp


以上、ファイルの基本操作について解説しました。