1

我有一些我想在用户本地机器(离线)中运行的 HTML 文件。有什么方法可以找出程序文件文件夹位于哪个硬盘驱动器中?

注意:您知道任何不会引发安全问题的方法吗?

4

4 回答 4

1

有一个file system api-HTML5看看文档草案

如果您是requestFileSystem()第一次调用,则会为您的应用创建新的存储空间。重要的是要记住这个文件系统是沙盒的,这意味着一个 Web 应用程序无法访问另一个应用程序的文件。这也意味着您无法将文件读/写到用户硬盘上的任意文件夹(例如我的图片、我的文档等)。

因此,如果您正在考虑一个能够浏览用户程序文件夹的网页,那么答案是否定的,您将需要某种应用程序引擎——例如Adob​​e Air或 Windows8 Metro 应用程序。

于 2012-05-18T19:56:48.420 回答
1

基本上没有跨浏览器的方式来做到这一点。如果您可以使用仅 Internet Explorer 的解决方案,请尝试查看名为 FileSystemObject 的 ActiveX 组件及其 GetSpecialFolder 方法 - http://msdn.microsoft.com/en-us/library/aa265315%28v=vs.60 %29.aspx

于 2012-05-18T19:58:49.877 回答
1

我觉得这个问题很困惑。并非每台计算机都有“程序文件”目录甚至驱动器的概念,因为并非每台计算机都是 Windows。

最重要的是,HTML5 离线模式只需要一个清单文件由您的 Web 服务器托管。浏览器会将缓存的数据放在正确的位置。

如果您正在谈论非托管页面的一些内部部署并想直接生成 IE,我认为这是一个坏主意,但使用%ProgramFiles%环境变量。

于 2012-05-18T20:01:03.380 回答
1

我不在 Windows 上,但似乎你可以尝试这样的事情:

var WshShell = new ActiveXObject('WScript.Shell');
Response.write("ProgramFiles envioronment variable is set to:\n\n" + 
               WshShell.ExpandEnvironmentStrings('%ProgramFiles%'));

程序文件位于环境变量中,这就是您要查找的内容。

问候,

PS:这将导致您收到一些安全警告。实际上,这并不安全。

于 2012-05-18T20:04:53.590 回答