4.インターネット一時ファイルを削除する |
1.インターネット一時ファイルを削除する 2. 3. 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6) Option :[Option Explicit] 参照設定: 使用 API:DeleteUrlCacheEntry FormatMessage その他 :このサンプルは、 Win32 APIを使用しておりますので、ある程度Win32 API が理解できる方がお使い下さい。 :
|
1.インターネット一時ファイルを削除する |
Option Explicit 'SampleNo=245 2003.02.02 'ファイルが存在した場合にキャッシュから関連したファイルを削除する Private Declare Function DeleteUrlCacheEntry Lib "wininet" _ Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long 'メッセージ文字列を指定の書式で取得する(741) 'http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_formatmessage.htm Private Declare Function FormatMessage Lib "KERNEL32" _ Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, _ ByVal dwMessageId As Long, ByVal dwLanguageId As Long, _ ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long 'システムメッセージリソースを検索する(741) Private Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000 Private Sub Command1_Click() 'キャッシュを削除するファイルのURLを取得 Call DeleteCache(Text1.Text) End Sub Private Sub DeleteCache(DelCacheUrl As String) Dim lngResult As Long '指定のファイルのキャッシュを削除 lngResult = DeleteUrlCacheEntry(DelCacheUrl) '結果を表示 If lngResult = 0 Then Call sGetErrMsg Else MsgBox "指定のファイルのキャッシュを削除しました" End If End Sub Private Sub sGetErrMsg() '最後にDLLを呼び出したときのエラーを取得(GetLastError) Dim lngResult As Long Dim ErrorCode As Long Dim ErrBuffer As String 'エラーメッセージを受け取るバッファーを確保 ErrBuffer = String$(256, vbNullChar) '最後にDLLを呼び出したときのエラーコードを取得 ErrorCode = Err.LastDllError 'エラーコードからエラーメッセージを取得する lngResult = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, _ ByVal 0&, ErrorCode, 0&, ErrBuffer, Len(ErrBuffer), 0&) 'バッファーからメッセージを取り出し ErrBuffer = Left$(ErrBuffer, InStr(ErrBuffer, vbNullChar) - 1) 'エラーコードとエラーメッセージを表示 MsgBox "エラーコード: " & ErrorCode & vbLf & ErrBuffer, _ vbInformation, "GetLastError" End Sub |
2003/02/02 No.2542の投稿で色々調べていてDeleteUrlCacheEntry APIで削除できるようなので試して見たら簡単に削除でき問題もなさそうなので No.2546 で一応紹介していたのですが、サンプルを他のサイトで投稿されていたので後でサンプルを投稿するとパクリと思われるのもいやなのでテスト中ですがUPしておきます。別途掲示板のNo.380〜とNo.2542〜の一連の投稿も見ておいて下さい。 よく解りませんがこの関数は Microsoft Windows CE 3.0 用?のようですがWinXP・Win98 でも動作致しました。 このAPIはサンプルを見れば解るかと思うのですがCurrentUser内のTemporary Internet Files内及び以下の指定のURLの関連ファイルを削除します。 従って、ネットワーク環境や複数のユーザー環境でご使用の場合は十分テストしてからご使用下さい 尚、すべて削除する場合はFindFirstUrlCacheEntry や FindFirstUrlCacheEntry API等を使って列挙する必要があります。その場合、下記のURLが参考になるかと思います。 又、COOKIE だけ残して削除も出来るようです。 http://www.mvps.org/vbnet/index.html?code/internet/deleteurlcache.htm |
2. |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |
インターネット一時ファイルを削除する キャッシュファイルを削除 ブラウザーのキャッシュ(一時ファイル)を削除する |