我有一些我想在用户本地机器(离线)中运行的 HTML 文件。有什么方法可以找出程序文件文件夹位于哪个硬盘驱动器中?
注意:您知道任何不会引发安全问题的方法吗?
我有一些我想在用户本地机器(离线)中运行的 HTML 文件。有什么方法可以找出程序文件文件夹位于哪个硬盘驱动器中?
注意:您知道任何不会引发安全问题的方法吗?
有一个file system api
-HTML5
看看文档草案
如果您是requestFileSystem()
第一次调用,则会为您的应用创建新的存储空间。重要的是要记住这个文件系统是沙盒的,这意味着一个 Web 应用程序无法访问另一个应用程序的文件。这也意味着您无法将文件读/写到用户硬盘上的任意文件夹(例如我的图片、我的文档等)。
因此,如果您正在考虑一个能够浏览用户程序文件夹的网页,那么答案是否定的,您将需要某种应用程序引擎——例如Adobe Air或 Windows8 Metro 应用程序。
基本上没有跨浏览器的方式来做到这一点。如果您可以使用仅 Internet Explorer 的解决方案,请尝试查看名为 FileSystemObject 的 ActiveX 组件及其 GetSpecialFolder 方法 - http://msdn.microsoft.com/en-us/library/aa265315%28v=vs.60 %29.aspx
我觉得这个问题很困惑。并非每台计算机都有“程序文件”目录甚至驱动器的概念,因为并非每台计算机都是 Windows。
最重要的是,HTML5 离线模式只需要一个清单文件由您的 Web 服务器托管。浏览器会将缓存的数据放在正确的位置。
如果您正在谈论非托管页面的一些内部部署并想直接生成 IE,我认为这是一个坏主意,但使用%ProgramFiles%
环境变量。
我不在 Windows 上,但似乎你可以尝试这样的事情:
var WshShell = new ActiveXObject('WScript.Shell');
Response.write("ProgramFiles envioronment variable is set to:\n\n" +
WshShell.ExpandEnvironmentStrings('%ProgramFiles%'));
程序文件位于环境变量中,这就是您要查找的内容。
问候,
PS:这将导致您收到一些安全警告。实际上,这并不安全。