2017-01-09 9 views
0

XMLファイルからSQLデータベースに情報をインポートしています。インポートは正常に機能していますが、一部のXMLファイルにエラーがあるため、コードが失敗します。私は例外をキャッチし、エラーフォルダにファイルを移動しようとしましたが、以前にファイルから読み込んでいたときに、そのファイルが別のプロセスで使用中であるというエラーが表示されます。私は検索しましたが、まだこれを治す方法はありません。ドキュメントを保存しようとしましたが、移動しようとするとまだ使用中です。以下は、参照用にファイルを移動しようとするコードのサンプルです。これをどのように治すべきかについての提案はすばらしく、事前情報に感謝します。C#でXMLDocumentを閉じるにはどうすればいいですか

XmlDocument doc = new XmlDocument(); 
try 
{ 
    doc.Load(st); 
} 
catch(Exception ex) 
{ 
    doc.Save(st); 
    if (File.Exists(st)) 
     File.Move(st, st + "\\Error"); 
} 
+0

を試してみてください。 XMLファイルが現在どこに存在し、どこに移動しようとしていますか? –

+0

XMLDocumentを開いたままにしてもよろしいですか?それだけでそれをロードしているので、決してそれを行うべきではありません。 –

+0

'XmlDocument'はファイルコンテンツを読み込むことができませんが、ファイルはまだ使用中です。ファイルを移動してコピーし、後でクリーンアップを実行しないでください。 –

答えて

0

はあなたのフォルダ構造を指定することができます

XmlDocument doc = new XmlDocument(); 
try 
{ 
    doc.Load(st); 
} 
catch(Exception ex) 
{ 
    //doc.Save(st);      -- why do you need to save a file that exists? 
    //if (File.Exists(st))    -- it returns always true 
    // File.Move(st, st + "\\Error"); -- wrong path 

    File.Move(st, Path.Combine("C:\\Error", Path.GetFileName(st))); 
} 
+0

これは、ファイルが解放されたかどうかを確認するために、さまざまなテストを行っていた場合に、保存されているか、存在しているかどうかを確認します。ありがとう –

関連する問題