jpg等の画像ファイルをFileOpenで開いた後の、バイナリモードの扱い方がわかりません。Dim aaa As Integer = 100Dim bbb As String = "C:\test.jpg"Dim ccc As ByteFileOpen(aaa, bbb, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.LockReadWrite)'FileClose(aaa)こんな感じで「test.jpg」をバイナリで ccc の変数に格納したいのですがどうすればいいでしょうか?
> Dim ccc As Byteバイナリなら、Dimb ccc() As Byte なのでは。> こんな感じで「test.jpg」をバイナリで ccc の変数に格納したいのですが2005 であれば、こんな感じで。Dim bin() As Byte = My.Computer.FileSystem.ReadAllBytes("C:\test.jpg")
魔界の仮面弁士様、返信ありがとうございます。環境を書くのを忘れていまして申し訳ないです・・・VB.NET2003、Windows2000での開発です。「My.Computer.FileSystem」は2005の書式のようなのでDim bin() As Byte = System.IO.File.ReadAllFile("C:\test.jpg")現在、↑のようにしてみましたが「'ReadAllFile'は'System.IO.File'のメンバではありません」とエラーが出ました。調べてみましたところ、ReadAllFile自体はどのサイトでもSystem.IO.Fileのメンバであるように書かれてますが何が間違っているのでしょうか?
> 調べてみましたところ、ReadAllFile自体はどのサイトでもSystem.IO.Fileのメンバであるように書かれてますが色々なサイトを参考にするのは良いですが、基本的にはまず MSDN を見ましょう。そのメンバがサポートしている .NET Framework のバージョンも書かれていますから。Byte() に読み出すのなら、FileStream を作成して Read メソッドで読み出すのが .NET 流です。ここでも MSDN を見ましょう。大抵はサンプルコードが載っていますから。ついでに一つのクラスを調べる時は目的のメソッドだけじゃなくてメンバ一覧に一通り目を通しておきましょう。思わぬ収穫があったりします。
おっしゃる通りFileStreamを使用することで無事解決しました。MSDNにも色々な情報が載っており勉強になりました。アドバイスありがとうございました。