昔は、「Myって便利だよなー。便利メソッドの寄せ集めで使いやすいなー」とか思ってたんですが、最近は普通にSystem.IO.File とか System.IO.Path とかをImportsして使ってます。
MyもMyで、必要な物がカテゴリごとに分けられてて便利です。My.Settings あたりは今でもよく使ってます。
My使うと微妙にオーバーヘッドがあるとかないとか。My用のライブラリも読み込むらしいし(未確認)
あとあれだ、微妙にメソッド名が長い。(わかりやすいけど)
以下過去のBlog*1より丸ごとコピペ。うわー。すげー冗長になってる。
-
-
- -
-
My.Computer.FileSystem には、ファイル操作に便利な関数がたくさん入っています。
いくつかオーバーロードしている関数もありますが、ここでは簡単な(基本的な)記述だけ紹介します。
パスの結合
My.Computer.FileSystem.CombinePath(baseDirectory As String, relativePath As String)
ディレクトリのコピー
My.Computer.FileSystem.CopyDirectory(sourceDirectoryName As String ,destinationDirectoryName As String )
ファイルのコピー
My.Computer.FileSystem.CopyFile(sourceFileName As String ,destinationFileName As String )
ディレクトリの作成
My.Computer.FileSystem.CreateDirectory(directory As String )
カレントディレクトリの取得 (戻り値はString)
My.Computer.FileSystem.CurrentDirectory()
ディレクトリの削除
My.Computer.FileSystem.DeleteDirectory(directory As String ,onDirectoryNotEmpty As DeleteDirectoryOption )
ファイルの削除
My.Computer.FileSystem.DeleteFile(file As String)
ディレクトリが存在するかの確認 (戻り値はBoolern)
My.ComputerFileSystem.DirectoryExists(directory As String)
ファイルが存在するかの確認 (戻り値はBoolern)
My.Computer.FileSystem.FileExists(file As String)
ファイルから特定の文字列を検索(?)
Dim value As System.Collections.ObjectModel.ReadOnlyCollection(Of String) = My.Computer.FileSystem.FindInFiles(directory As String ,containsText As String ,ignoreCase As Boolern ,searchType As SearchOption )
ディレクトリの取得(?)
Dim value As System.Collections.ObjectModel.ReadOnlyCollection(Of String) = My.Computer.FileSystem.GetDirectories(directory As String)
ディレクトリ情報の取得
Dim returnValue As DirectoryInfo returnValue = My.Computer.FileSystem.GetDirectoryInfo(directory As String)
ドライブ情報の取得
Dim returnValue As DriveInfo returnValue = My.Computer.FileSystem.GetDriveInfo(drive As String)
ファイル情報の取得
Dim returnValue As FileInfo returnValue = My.Computer.FileSystem.GetFileInfo(file As String)
指定されたディレクトリ中にあるファイルの取得(コレクションで返る?)
Dim value As System.Collections.ObjectModel.ReadOnlyCollection(Of String) = My.Computer.FileSystem.GetFiles(directory As String)
ファイル名の取得
Dim returnValue As String returnValue = My.Computer.FileSystem.GetName(path As String)
ファイル名までのパスを返す(直前のパスを返す?)
Dim strPath As String strPath = My.Computer.FileSystem.GetParentPath(path As String)
ディレクトリの移動
My.Computer.FileSystem.MoveDirectory(sourceDirectoryName As String ,destinationDirectoryName As String)
ファイルの移動
My.Computer.FileSystem.MoveFile(sourceFileName As String,destinationFileName As String)
ファイルの内容をByte型で取得
Dim returnValue() As Byte returnValue = My.Computer.FileSystem.ReadAllBytes(file As String)
ファイルの内容をString型で取得
Dim value As String value = My.Computer.FileSystem.ReadAllText(file As String)
ディレクトリ名の変更
My.Computer.FileSystem.RenameDirectory(directory As String, newName As String)
ファイル名の変更
My.Computer.FileSystem.RenameFile(file As String, newName As String)
Byte型のデータをファイルへ書き込む
My.Computer.FileSystem.WriteAllBytes(file As String, data() As Byte , append As Boolern)
String型のデータをファイルへ書き込む
My.Computer.FileSystem.WriteAllText(file As String ,text As String ,append As Boolern)
*1:VS2005が出てきたときの情報です