私は C# .NET を使用しており、対 2008 では .net 3.5
私にとっては難しいですが、これには C# のサンプル コードが必要です。
ファイルまたはフォルダーが使用中かどうかを確認する
ファイルまたはフォルダーが使用中の場合、それを使用するプロセスの名前
たとえば、私の問題では。
ファイルを削除しようとすると、「別のプロセスで使用されているため、プロセスはファイル 'XYZ' にアクセスできません。」というメッセージが表示されます。例外。
File.Delete(infoFichero.Ruta);
ファイルが使用されているかどうかと、それを使用しているプロセスの名前を確認したい。
サンプルコード、ソースコードが必要です。私は c++ を使いたくありません。c、c++、アンマネージ コード、または WinApi を知りません。C# コード (マネージド コード .net) のみを使用したい。
私はいくつかの参考文献を読みましたが、サンプル コード ソースを入手できませんでした。
ファイルが使用中かどうかを確認する方法は?
ファイルがロックされているときに C# で File.Open の待機をエミュレートする
別のアプリケーションによってロックされているテキスト ファイルを読み取る最も簡単な方法
C# を使用して、ファイルがロックされているかどうかをテストできますか?
編集: Yan Jun から - MSFT
string path = "D:\\temp2.xlsx";
foreach (Process c in Process.GetProcesses()) {
if (c.MainWindowTitle.Contains(Path.GetFileName(path))){
MessageBox.Show(c.ProcessName);
return;
}
}
try{
FileInfo f = new FileInfo(path);
f.Delete();
}
catch (Exception ex){
MessageBox.Show(ex.Message);
}
... しかし、すべての問題を 100% 解決することは困難です。
c.MainWindowTitle == null またはファイル名が含まれていない場合の問題。
別のマシン、PC、サーバーなどの共有フォルダーの問題:
File.Delete(@\desiis\TEmporal\Project\script.targets);
どんなサンプルコードでも、教祖、MVP、誰にでも助けを求めます。
更新:フォルダーの同じ問題