VB.NET で入出力関連の関数・メソッドの一覧
System.IO
ファイルの新規作成 (File.Create)
'Imports System.Text
Dim stream As FileStream = File.Create("C:\temp\test.txt") 'ファイル作成
Dim data As Byte() = Encoding.UTF8.GetBytes("ABC")
stream.Write(data, 0, data.Length) '「ABC」がファイルに書き込まれる
stream.Close()
ディレクトリの作成 (Directory.CreateDirectory)
Dim dirInfo As DirectoryInfo = Directory.CreateDirectory("C:\temp\a")
Console.WriteLine(dirInfo.FullName()) ' => C:\temp\a
ファイル・ディレクトリ情報 (FileInfo, DirectoryInfo)
'ファイル情報
Dim fileInfo As New FileInfo("C:\Windows\explorer.exe")
If fileInfo.Exists Then
Console.WriteLine(fileInfo.FullName) ' => C:\Windows\explorer.exe
Console.WriteLine(fileInfo.DirectoryName) ' => C:\Windows
Console.WriteLine(fileInfo.Name) ' => explorer.exe
Console.WriteLine(fileInfo.Extension) ' => .exe
Console.WriteLine(fileInfo.Length) ' => 4624880
End If
'ディレクトリ情報
Dim dirInfo As New DirectoryInfo("C:\Windows")
For Each file As FileInfo In dirInfo.EnumerateFiles
Console.WriteLine(file.FullName)
Next
' => C:\Windows\bfsvc.exe
' => C:\Windows\bootstat.dat
' => C:\Windows\Core.xml
' => C:\Windows\DtcInstall.log
' => C:\Windows\explorer.exe
' => C:\Windows\HelpPane.exe
' ...省略...
ファイル一覧の取得 (directoryInfo.GetFiles)
Dim dirInfo As New DirectoryInfo("C:\temp")
' 現在のディレクトリのみ検索
Dim files As FileInfo() = dirInfo.GetFiles("*.txt")
For Each file As FileInfo In files
Console.WriteLine(file.FullName)
Next
' => C:\temp\test.txt
' => C:\temp\test2.txt
' 現在のディレクトリとすべてのサブディレクトリから検索
Dim allFiles As FileInfo() = dirInfo.GetFiles("*.txt", SearchOption.AllDirectories)
For Each file As FileInfo In allFiles
Console.WriteLine(file.FullName)
Next
' => C:\temp\test.txt
' => C:\temp\test2.txt
' => C:\temp\a\1.txt
' => C:\temp\a\2.txt
' => C:\temp\a\b1\3.txt
' => C:\temp\a\b2\4.txt
メモリストリーム (MemoryStream)
' Imports System.Text
Dim stream As New MemoryStream
' ストリームに書き込む
Dim data1 As Byte() = Encoding.UTF8.GetBytes("ABC")
stream.Write(data1, 0, data1.Length)
Dim data2 As Byte() = Encoding.UTF8.GetBytes("DEFG")
stream.Write(data2, 0, data2.Length)
Console.WriteLine(Encoding.UTF8.GetString(stream.GetBuffer))
' => ABCDEFG
' 現在位置の移動
stream.Seek(0, SeekOrigin.Begin)
' ストリームから読み込む
Dim readData(10) As Byte
stream.Read(readData, 0, 4) ' 4byte読み込む
Console.WriteLine(Encoding.UTF8.GetString(readData))
' => ABCD