它们存储在您的系统's 1166699 cache (i.e. I.E.'缓存中 . 我有Firefox作为我的默认浏览器,但它们仍然存储在“ AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5 ”子文件夹中 .
以下是我如何确定这一事实 . 我首先通过将HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystem \ NtfsDisableLastAccessUpdate设置为零并重新启动计算机,在Windows 7中重新启用NTFS Last-Access-Time更新 . 然后我打开Visual Studio并创建了一个程序,其中FileSystemWatcher实例的配置如下面的代码所示:
FileSystemWatcher watcher = new FileSystemWatcher( "C:\\", "*.swf" );
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite;
watcher.Changed += new FileSystemEventHandler(watcher_Changed);
watcher.IncludeSubdirectories = true;
watcher.EnableRaisingEvents = true;
接下来,我在Flash CS6中测试了一个程序,该程序从远程服务器加载外部SWF文件 . 它使用URLLoader类首先获取文件的字节,然后调用Loader实例的loadBytes方法来加载SWF的字节 . (使用URLLoader是一种绕过本地安全沙箱限制的解决方法,否则会阻止远程代码加载到本地SWF的同一应用程序域和安全域中;这是我的代码库的要求,因为远程SWF使用定义的类在本地容器SWF中) .
“watcher_Changed”事件处理程序列出了Flash IDE的播放器访问或写入的文件,这就是出现的情况 .
我的 container SWF "basemovie3.swf"(主项目文件)是从目录加载的:
"C:\Users\[your_username]\AppData\Local\Adobe\Flash CS6\en_US\Configuration\CodeModel\cm-cache\SwcCache\basemovie3.swc1272273593\library.swf"
remote SWF "l003s.swf"(缓存的问题)是从目录加载的:
"C:\Users\[your_username]\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\IGH0THHW\l003s[1].swf"
所以你有它 . 远程加载的SWF是从Temporary Internet Files缓存加载的 .
尽管将“?random = randomnumber&timestamp = currenttime”形式的查询字符串附加到远程加载文件“l003s.swf”的URL,但文件系统监视器完全没有写入任何SWF文件,尽管尝试加载文件多个使用不同查询字符串的次数以及更新服务器上的文件后的一些尝试次数 .
似乎清除文件的最佳方法是打开开始菜单并键入“Temporary”,您可以单击“更改临时Internet文件设置”,“删除cookie或临时文件”或“删除浏览”中的任何选项历史” . 它们都会将您带到Temporary Internet Settings窗口,您可以在其中删除浏览历史记录和缓存 .