ここでは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
以上、ファイルの基本操作について解説しました。