いくつかの作業を行った後にC#でファイルを削除しようとしていますが、別のプロセスがファイルを使用しているようにエラーが発生するため機能しません。
質問する
3772 次
2 に答える
8
作業が完了したら、必ずファイルを閉じてください。別のプロセスが開いている場合は、ハンドルを追跡して何が起こっているかを確認します (これには Process Explorer が適しています)。
using
ステートメントでファイル open をラップすると、ブロックの最後でこれが発生します。Dispose()
それ以外の場合は、ストリームを再度開く前に、必ずストリームを呼び出してください。
using(var fs = File.Open(path))
using(var reader = new StreamReader(fs))
{
// do stuff with the file
} // Dispose() is called here which closes the file as well
try
{
// should work now
File.Delete(path);
}
catch(SomeException ex)
{
// just in case, do something
}
于 2012-11-01T02:38:20.310 に答える
0
私は次のようなコードを使用しています
DirectoryInfo DI = new DirectoryInfo(@"D:\TimeQImages\");
if (DI.Exists)
{
progressBar1.Value = 0;
FileInfo[] fi = DI.GetFiles();
int size = fi.Length;
if (size < 100)
{
size = 100 / size;
}
else
{
size = (int)(size / 100);
}
foreach (FileInfo f in fi)
{
progressBar1.Value += size;
ConvertToChunks(f.FullName);
f.Delete();
}
MessageBox.Show("Transfer completed");
}
ここでは、ファイル情報に対して破棄関数を取得していません
于 2012-11-01T17:46:35.477 に答える