VBでIE一時ファイルから画像ファイルを取得するには?

解決


ごめんねごめんね〜  2009-01-01 18:48:51  No: 145579

こんにちは。以下の質問に関して、またまた質問させていただきます。
http://madia.world.coocan.jp/cgi-bin/vbnet/wwwlng.cgi?print+200812/08120020.txt
例えば、http://hogehoge.com/hogehoge.htmlにアクセスした場合
そのページにあるhttp://hogehoge.com/image/piyopiyo.jpgという画像が
IE一時ファイルとしてキャッシュされたとします。
VBで、このキャッシュされた画像データを任意のフォルダにコピーしたいのですが、
どのようにすればよいでしょうか?
なお、環境はVB2008のExpress Editionです。
よろしくお願いします。


アクア  URL  2009-01-02 01:09:48  No: 145580

アクアと申します。

任意のフォルダ及びファイルを操作したいならSystem.IO.Directoryクラスを調べてみてください。


ごめんねごめんね〜  2009-01-02 06:16:27  No: 145581

アクアさん、ご回答ありがとうございます。
しかしながら、エクスプローラでIEの一時ファイルが格納されるフォルダを見ると、
キャッシュされた内容が表示されますが、実際にSystem.IO.Directory等で
該当フォルダを見ると分かるのですが、キャッシュされた情報はそこに存在しません。
どのようにして、一時ファイルの実データを取得できるか、
どなたかお教えいただけますでしょうか?
どうぞよろしくお願いします。


魔界の仮面弁士  2009-01-03 19:26:59  No: 145582

> エクスプローラでIEの一時ファイルが格納されるフォルダを見ると

エクスプローラからみえているのは、(仮想的な)フォルダです。
System.IO.Directory が扱う、(物理的な)ディレクトリとは異なります。

既に御存知かも知れませんが、実際のファイルは "Temporary Internet Files" の
直下では無く、さらにその下の "Content.IE5" という隠しディレクトリの下にある
8桁の英数字ディレクトリ名(8XUF0X27, E4G5TIMU など)の下に配置されています。

Imports System
Imports System.IO
Imports System.Collections.Generic
Imports System.Runtime.InteropServices
Imports Microsoft.VisualBasic

Module Module1
    Sub Main()
        Dim S As String
        Dim o As Object = CreateObject("Shell.Application")
        Dim f As Object = o.Namespace(&H20I)
        Dim fi As Object = f.Self
        S = fi.Path
        Marshal.ReleaseComObject(fi)
        Marshal.ReleaseComObject(f)
        Marshal.ReleaseComObject(o)

        Dim f1() As String = Directory.GetDirectories(S)
        Dim cache As String = Path.Combine(S, "content.IE5")
        If Filter(f1, cache, True, CompareMethod.Text).Length <> 0 Then
            Dim f2() As String = Directory.GetDirectories(cache)
            For Each X As String In f2
                Console.WriteLine(X)
                'For Each Y As String In Directory.GetFiles(X, "*.gif")
                '    Console.WriteLine(Y)
                'Next
            Next
        End If

        Console.Write("Hit Any Key...")
        Console.ReadKey()
    End Sub
End Module


ごめんねごめんね〜  2009-01-05 08:43:58  No: 145583

魔界の仮面弁士さん、ありがとうございました。
キャッシュされているファイルがどのようになっているか、
よくわかりました。
今後ともよろしくお願いします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加