Firefox加载项:1)将Python脚本链接到加载项主代码| 2)JPM/NPM中的win32 api | 3)使用OS.file在Windows中设置文件属性
我想使用在Windows操作系统上创建隐藏文件。 使用JS/Node.JS似乎是不可能的 通过Python导入API,这是可能的(使用例程和文件\属性\隐藏参数)Firefox加载项:1)将Python脚本链接到加载项主代码| 2)JPM/NPM中的win32 api | 3)使用OS.file在Windows中设置文件属性,python,firefox-addon,filesystems,file-attributes,Python,Firefox Addon,Filesystems,File Attributes,我想使用在Windows操作系统上创建隐藏文件。 使用JS/Node.JS似乎是不可能的 通过Python导入API,这是可能的(使用例程和文件\属性\隐藏参数) 那么,如何将Python脚本链接到Firefox插件的主JS代码呢?关于这件事,你能给我一些参考资料吗?我在网上找不到任何东西。XPCOM将被弃用。虽然这可以通过nsIFile实现,但我在这里不展示它,因为主线程的性能更差。目前推荐的文件系统访问方式是“OS.file” windows上隐藏的文件/目录 以下是使用OS.File执行
那么,如何将Python脚本链接到Firefox插件的主JS代码呢?关于这件事,你能给我一些参考资料吗?我在网上找不到任何东西。XPCOM将被弃用。虽然这可以通过
nsIFile
实现,但我在这里不展示它,因为主线程的性能更差。目前推荐的文件系统访问方式是“OS.file”
windows上隐藏的文件/目录
以下是使用OS.File执行此操作的方式:
OS.File.setPermissions(
OS.Path.join(OS.Constants.Path.desktopDir, 'my hidden file.txt'),
{
winAttributes: {
hidden: true
}
}
)
.then(x => console.log('success:', x), y => console.error('failure:', y));
这会将桌面上名为my hidden file.txt的文件设置为隐藏。以下是其他winAttributes
:
*nix/Mac上的隐藏文件/目录
重命名或创建文件,使
作为其名称中的第一个字符,并且该文件处于隐藏状态。使用OS.File这是通过OS.File.move
函数完成的,因为重命名只是文件系统上的一个移动:
OS.File.move(
OS.Path.join(OS.Constants.Path.desktopDir, 'my hidden file.txt'),
OS.Path.join(OS.Constants.Path.desktopDir, '.my hidden file.txt')
)
.then(x => console.log('success:', x), y => console.error('failure:', y));
这会将桌面上的文件从my hidden file.txt
重命名为.my hidden file.txt
,从而使其隐藏
平台API
如果需要使用平台API,则无需使用python。我们有js C类型:
以下是一些关于js ctypes的文档:
下面是类型和函数声明的库/集合:
您能不能不使用这个按钮?为了实现这一点而导入一种完整的语言似乎有些过头了。是否有什么原因使您特别需要一个隐藏文件(在windows上)。扩展的Mac/Linux用户呢?安卓呢?为什么不使用-which可以跨平台工作?“在jpm中提供”您是指npm吗?我已经知道了?它说它有完整的win32 API,其中包括SetFileAttributes
。但是你也可以只使用Windows的特定部分?这样,您就不必找出扩展和节点之间的某种连接,所以我相信唯一的解决方案就是使用API。不幸的是,OS.file只提供有关*现有*文件的信息。相反,存储对象应该特定于一个页面(HTML文档),特别是在浏览器中打开的页面:我需要一个文件来验证常规数据,并且事先不知道哪个页面处于活动状态。在*nix系统中,隐藏不是问题,事实上你知道你只需要把“.”放在隐藏处就可以了。嗯,没错,没错。您可以使用OSFile检查隐藏属性。也许你可以用我的第一句话来修改它?似乎表明您可以使用XPCOM启动命令shell并向其传递命令。回答得很好!我确信Python/win32 API方法对于这一点来说太过分了。答案很好!第二个链接是我所缺少的!谢谢大家!我添加了如何在Linux/Mac上使用OS.File
重命名您必须使用OS.File.move
重命名操作仅仅是文件系统上的移动操作,这可能并不直观。