2009-08-10 10 views

答えて

1

他のプロセスが使用している間は削除できません。これは、Windowsの低レベルファイル処理から発生します。ただし、ファイルの名前を変更したり、次の起動時に削除するように設定したりすることができます。

Process Explorerツールは、ファイルを使用しているプロセスを見つけるのに役立ちます。実際には、適切な管理権限を与えられたハンドルを閉じることができます。したがって、API呼び出しでは可能ですが、そのようなファイルハンドルを強制的に閉じると、そのプロセスが予期せぬ動作をする可能性があります。

0

名前を変更できない場合は、名前を変更することができますが、ロックされたファイルの名前を変更することができない理由がわかりません。

また、ヌル先とMOVEFILE_DELAY_UNTIL_REBOOTフラグでMoveFileExを使用して、次回の起動時に削除されるように、それをスケジュールすることができます:あなたはMy.Computer.FileSystem.DeleteFileを使用する場合は、
http://msdn.microsoft.com/en-us/library/aa365240(VS.85).aspx
http://www.pinvoke.net/default.aspx/kernel32/MoveFileEx.html
http://www.pinvoke.net/default.aspx/Enums/MoveFileFlags.html

0

別のプログラムがファイルを使用している場合、そのファイルがロックされているプログラムをユーザーに通知できます。使用中の場合は削除できません。

Try 
    My.Computer.FileSystem.DeleteFile("C:\Documents and Settings\anybody\Desktop\dummy.doc", _ 
            FileIO.UIOption.AllDialogs, _ 
            FileIO.RecycleOption.DeletePermanently, _ 
            FileIO.UICancelOption.ThrowException) 
Catch ex As System.IO.IOException 
    Console.WriteLine(ex.ToString()) 
End Try 
関連する問題