0

インターネット一時ファイル内のすべての kml ファイルを消去したいと考えています。再帰的なディレクトリ検索を試みましたが、Windows エクスプローラーで参照すると kml ファイルが表示されますが、kml ファイルが見つかりません。Content.IE5 のような「Temporary Internet Files」の実際のディレクトリには、これらの kml ファイルに対応する *.xml が存在します。それらも削除しましたが、Windows エクスプローラーにはまだ kml ファイルが表示されます。いくつかの WinApi メソッドも試しましたが、必要なコードを書くことができませんでした。

4

2 に答える 2

1

私が知る限り、Temporary Internet Files はごみ箱ファイルと同様に処理されます。つまり、メタデータ (ファイル名など) を含むインデックス ファイルと、実際の内容を含むファイルがあります。ファイル情報を取得するために使用できるかもしれませんがGetUrlCacheEntryInfo()、特定のサブセットを除くすべてのファイルをクリアする特定の/簡単な方法はないと思います (メタデータを更新せずにファイルを削除するだけでキャッシュファイルを損傷することはありません)またはキャッシュ内のすべてのファイルを反復処理します)。

編集:私はあなたを誤解しました(私は思います;特定のファイルセットを削除したいだけで、他のすべてではありません)。すべての *.kml ファイルのみを削除したい場合は、それを実行できる可能性があります。

  • FindFirstUrlCacheEntryと `FindNextUrlCacheEntry)を使用してキャッシュ エントリを検索します。
  • 見つけたエントリを削除するために使用DeleteUrlCacheEntryします。
于 2012-04-12T14:59:41.220 に答える
0

Environment.SpecialFolder.InternetCacheパスを試しましたか

        string tempPath = Environment.GetFolderPath(Environment.SpecialFolder.InternetCache);

        System.IO.DirectoryInfo tempDir = new DirectoryInfo(tempPath );
        foreach (FileInfo file in tempDir.GetFiles("*.kml"))
        {
            file.Delete();
        }

また、サブディレクトリ内のファイルも削除するようにコードを更新する必要があります。

うまくいけば、それは役に立ちます。

于 2012-04-12T15:03:20.500 に答える