方法 : Visual Basic で My Documents ディレクトリのファイルにテキストを書き込む
更新 : 2007 年 11 月
My.Computer.FileSystem.SpecialDirectories オブジェクトを使用すると、MyDocuments ディレクトリなどの特別なディレクトリにアクセスできます。
手順
My Documents ディレクトリに新しいテキスト ファイルを書き込むには
My.Computer.FileSystem.SpecialDirectories.MyDocuments プロパティを使用してパスを指定します。
Dim filePath As String filePath = System.IO.Path.Combine( _ My.Computer.FileSystem.SpecialDirectories.MyDocuments, "test.txt")
WriteAllText メソッドを使用して、指定のファイルにテキストを書き込みます。
My.Computer.FileSystem.WriteAllText(filePath, "some text", True)
使用例
Try
Dim filePath As String
filePath = System.IO.Path.Combine( _
My.Computer.FileSystem.SpecialDirectories.MyDocuments, "test.txt")
My.Computer.FileSystem.WriteAllText(filePath, "some text", False)
Catch fileException As Exception
Throw fileException
End Try
コードのコンパイル方法
test.txt の部分を、書き込みを行うファイルの名前に置き換えてください。
堅牢性の高いプログラム
このコードでは、ファイルにテキストを書き込むときに生じる可能性のあるすべての例外を再スローしています。OpenFileDialog コンポーネントおよび SaveFileDialog コンポーネントなどの Windows フォーム コントロールを使用すると、例外の可能性を減らすことができます。有効なファイル名のみをユーザーが選択できるようになっているからです。ただし、これらのコントロールを使用しても、完璧とは限りません。ユーザーがファイルを選択してから、コードが実行されるまでの間に、ファイル システムが変更される可能性があります。したがって、ファイルを操作するときには、例外処理はほぼ必須です。
セキュリティ
部分的に信頼されているコンテキストでプロセスを実行している場合は、特権不足のため例外がスローされることがあります。詳細については、「コード アクセス セキュリティの基礎」を参照してください。
この例では新しいファイルを作成します。アプリケーションがファイルを作成する必要がある場合は、フォルダの作成のアクセス許可が必要になります。アクセス許可は、アクセス制御リストを使用して設定します。ファイルが既に存在する場合、アプリケーションに必要なのは書き込みのアクセス許可だけです。可能な場合は、フォルダに対する作成の権限を付与するのではなく、配置時にファイルを作成し、1 つのファイルに対する読み取りの権限だけを付与する方が安全です。また、ルート フォルダや Program Files フォルダにデータを書き込むよりも、ユーザー フォルダに書き込む方が安全です。詳細については、「アクセス制御リスト (ACL)」を参照してください。