こんにちは。以下の質問に関して、またまた質問させていただきます。
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です。
よろしくお願いします。
アクアと申します。
任意のフォルダ及びファイルを操作したいならSystem.IO.Directoryクラスを調べてみてください。
アクアさん、ご回答ありがとうございます。
しかしながら、エクスプローラでIEの一時ファイルが格納されるフォルダを見ると、
キャッシュされた内容が表示されますが、実際にSystem.IO.Directory等で
該当フォルダを見ると分かるのですが、キャッシュされた情報はそこに存在しません。
どのようにして、一時ファイルの実データを取得できるか、
どなたかお教えいただけますでしょうか?
どうぞよろしくお願いします。
> エクスプローラで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
魔界の仮面弁士さん、ありがとうございました。
キャッシュされているファイルがどのようになっているか、
よくわかりました。
今後ともよろしくお願いします。
ツイート | ![]() |