【问题标题】:"Temporary Internet Files" folder on WindowsWindows 上的“Internet 临时文件”文件夹
【发布时间】:2010-03-05 16:49:10
【问题描述】:

我的 Java 程序需要删除由程序创建的“Shell.Explorer.1”ActiveX 控件创建的所有临时 Internet 文件。

最好的方法是什么?

如果我在 Internet Explorer 中转到工具->Internet 选项,单击常规选项卡上的浏览历史记录设置按钮,然后单击查看文件按钮,它会使用 Windows 资源管理器将我带到此文件夹:

 C:\Documents and Settings\<user-name>\Local Settings\Temporary Internet Files

然后我会看到“文件”列表,尽管我不确定它们是否真的是文件。如何使用 Java 删除这些?

但是,当我调用file.listFiles()(其中file 是上面列出的目录)时,我在Windows 资源管理器中看不到任何文件。我看到了一些我认为是隐藏的文件夹。

【问题讨论】:

    标签: java windows internet-explorer file activex


    【解决方案1】:

    Temporary Internet Files 是一个伪装文件夹。您在资源管理器中看到的视图是磁盘上的实际文件的组合,这些文件存在于安全的、不可预测的命名子文件夹中,以及存储有关文件元数据的 Wininet Url 缓存容器(例如它们来自哪个 URL、到期日期等) .如果您使用文件系统 API,您将获得实际存在的内容。但是,如果您使用 shell API,您可以按照您想要的方式枚举它们。尝试从 SHParseDisplayName() 开始,然后从那里开始。而且,是的,不知道如何在 Java 中做到这一点,但应该有一些方法可以从 Java 中调用 win32 函数,对吧?

    【讨论】:

      【解决方案2】:

      Windows 对待Temporary Internet Files 文件夹(以及其他)的方式与普通文件夹不同。您必须查阅 Windows 文档以了解具体信息,但正如您所发现的,您在 Windows 资源管理器中看到的该文件夹的内容与您的 Java 程序找到的内容不匹配。

      您可以使用命令提示符浏览目录结构以查看您的 Java 程序会看到什么(即隐藏文件夹等)。还有一个特殊的 index.dat 文件,当您需要查找具有某些属性的文件时可能会有所帮助。

      另请参阅:reverse engineering index.dat

      【讨论】:

        【解决方案3】:

        正如其他人所说,Temporary Internet Files 是一个伪文件夹,其内容由 Internet Explorer / WinINet 管理。据我所知,没有任何方法可以关联哪些文件是由哪些程序创建的(除非您正在寻找特定的域或最后修改日期)。 WinINet does provide some limited functionality for managing these files,但我认为在那里乱搞是不好的做法。为什么你(认为你)需要这样做?

        【讨论】:

          猜你喜欢
          • 2012-06-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-06-16
          相关资源
          最近更新 更多