• ベストアンサー

C#で開いたファイルを上書きするには

C#で開いたファイルを上書きするには どのようにしたらいいのでしょうか? 開いたまま上書きすると言うことが出来るのでしょうか? 何か上書き可能な関数があるのでしょうか? よろしくお願い致します

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>pictureBox1.Image.Save(xxxx,xxx); >でも効くのでしょうか? Image.Save(Stream, ImageFormat) を使います。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemDrawingImageClassSaveTopic2.asp File.Open(String, FileMode, FileAccess) で返ってくるのはFileStramなので、 Image.Save(Stream, ImageFormat) の第1引数に渡せます。 「「未確認」」 // 開く FileStream fs = File.Open("FileName", FileMode.Open, FileAccess.ReadWrite); // 読み込み PictureBox.Image = System.Drawing.Image.FromStream(fs); // 巻き戻し fs.Seek(0, SeekOrigin.Begin); // 編集 ・・・ // 書き出し PictureBox.Image.Save(fs, ImageFormat.Bmp); // 閉じる fs.Close(); ↑課題:元のサイズより小さくなったときは?

easy_gontyan
質問者

お礼

ありがとうございます すごいです 最近始めたばかりでパニックでした 本当にありがとうございます がんばります

その他の回答 (1)

回答No.1

こんにちは。  リードライトモードで開いて読み込んだ後、メモリを編集し、ファイルの先頭をseekして、書き出します。編集後の方が短い場合は、後ろをヌルで埋めてから書き出します。 ファイルを読み込んだ後いったん閉じて、trancateで開き直すという手もあります。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemIOFileClassOpenTopic2.asp http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemIOFileStreamClassSeekTopic.asp

easy_gontyan
質問者

お礼

ありがとうございます すいませんが pictureBox1.Image.Save(xxxx,xxx); でも効くのでしょうか? イメージを読み込みそれを編集し保存したいのですが 普通にセーブ出来ると思ったらつまずいてしまいました よろしくお願い致します

関連するQ&A

専門家に質問してみよう