![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
System.IO.StreamReader reader = new System.IO.StreamReader(Filename1, System.Text.Encoding.GetEncoding("utf-8"));
// データセットにXMLファイルを読み込む
dtSet.ReadXml(reader);
...
...
で読込んでいる(内容の変更はしない)ファイルを別Formで別のデータに変更したいのですが、何か方法がありませんか(読み込んだファイルの開放とか)?
File.Copy(FileName2,FileName1, true);
と出来たら一番簡単なのですが、使用中ですのようなエラーが出ます。
No.1ベストアンサー
- 回答日時:
読込終わった段階でClose()すればいいだけでは。
ただし、当たり前ですが、別プロセスからの書込みも許可されるようになります。
別プロセスとは、あらゆる外部プログラムを含みます。
そのため、要件によっては、正しいアプローチとは言えないかもしれません。
同一プロセス内での書込みを許可し、更には別プロセスでの読込/書込の許可制御をしたいならば、System.IO.FileStreamを併用すべきでしょう。
// 外部からの読込/書込を許可せずD:\hoge.xmlの読み書きを行う
using (var fs = new System.IO.FileStream(@"D:\hoge.xml",
System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite, System.IO.FileShare.None))
{
// 読み込み
using (var sr = new System.IO.StreamReader(fs, Encoding.UTF8))
{
var dt = new DataSet();
var xml = dt.ReadXml(sr);
// 上書き書き込み
//fs.SetLength(0);
//using (var sw = new System.IO.StreamWriter(fs, Encoding.UTF8))
//{
// sw.Write("test");
//}
// コピー元のファイルがあって上書きしたいなら
using (var copyFs = new System.IO.FileStream(@"D:\hoge2.xml",
System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.None))
{
fs.SetLength(0);
copyFs.CopyTo(fs);
}
}
}
ありがとうございます。
reader.Close();
で、うまくいきました。
>ただし、当たり前ですが、別プロセスからの書込みも許可されるようになります。
>別プロセスとは、あらゆる外部プログラムを含みます。
>そのため、要件によっては、正しいアプローチとは言えないかもしれません。
とりあえず、そこまでは必要ありませんが、今後のプログラムで参考にさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- XML エクセルのマクロについて教えてください。 3 2023/02/06 09:06
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
【C#】別プロセスがロックかけているファイルの読込
C言語・C++・C#
-
System.IO.Directory.GetFilesの順番
Visual Basic(VBA)
-
-
4
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
-
5
CloseとDisposeの違い
Visual Basic(VBA)
-
6
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UTF-8でエンコーディングとはど...
-
XMLファイルの作り方がわかりま...
-
バッチファイルでテキストファ...
-
ビデオハードウェアエラー Live...
-
eclipseへのxmlファイル追加
-
現在業務でVBを使ってエクセル...
-
ExcelVBAで書き出した文字が化ける
-
CPUの考え方を教えてください ...
-
東芝のDynabookなのですがアン...
-
Access VBAでXMLが読み込めない
-
SNMP リンクダウンとノードダ...
-
メモリのセクションに関して
-
xmlファイルが上手にHTMLに変換...
-
このエラー、何とかなりません...
-
replaceChildメソッドについて
-
特殊記号が勝手にエスケープさ...
-
VBSでxmlの値を書き換えたい
-
XSLT
-
XSLTで直下のテキストのみ取得...
-
文字列や画像のurlをhtmlに代入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UTF-8でエンコーディングとはど...
-
バッチファイルでテキストファ...
-
C#で使用中のファイルに別のフ...
-
eclipseへのxmlファイル追加
-
VBSでXMLを読込、検索結果をテ...
-
XMLファイルの作り方がわかりま...
-
ExcelVBAで書き出した文字が化ける
-
Excel(2007以降)をxml形式に変...
-
DOSコマンドラインからxmlファ...
-
VBAでxmlファイルの置換をしたい
-
XMLの編集?について
-
DataSetのwriteXmlでのXML宣言
-
ビデオハードウェアエラー Live...
-
XMLファイルのattribute値を取...
-
GoogleマップでKMLが読み込めない
-
O/Rマッパー
-
外部ファイル(txt/csv)から文字...
-
Web サイトにあるxmlファイルを...
-
XML関数
-
DOMデータを使ってSAXで解析す...
おすすめ情報