0

以下のコードを使用して、IE のすべての Cookie をクリアしたい:

public void ClearCookie()
    {
        string[] Cookies =
            System.IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache));
        foreach (string currentFile in Cookies)
        {
            try
            {
                System.IO.File.Delete(currentFile);
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }

しかし、実行すると、次の内容のメッセージ ボックスが表示されます: The process cannot access the file: C:\User...\Microsoft\Windows\Temporary InterNet Files\counter.dat' because it is being used by another processその問題を解決するには???

4

1 に答える 1

0

一般的な例外をキャッチする代わりに、次のように正確なエラーの種類を指定することに集中できます。

        try
        {
            File.Delete(currentFile);
        }
        catch (IOException ex)
        {
            // file is locked, in use or has an open handle in another application
            // so skip it
        }
        catch (UnauthorizedAccessException ex)
        {
            // you don't have permissions to delete the file
        }

これにより、発生する可能性があるさまざまなファイル IO 例外を処理する方法について、より適切な指標が得られるはずです。また、このメソッドがスローする可能性のあるさまざまな種類のエラーの詳細については、MSDN の File.Delete ドキュメントを参照してください。

于 2013-07-06T13:37:42.700 に答える