这可能是个愚蠢的问题,但是当我双击单词 app 或 .exe app 时,幕后会发生什么?
对于“非开发人员”,它只是在双击后在正确的环境中打开文件。但是我想知道,它是怎么做的,文件管理器怎么知道要打开什么? (word 中的 .docx,文本编辑器中的 .txt 等...)
+ 我想知道如何在 Node.js 中做到这一点,这是对每个后缀使用 child_process 和 if 语句的最佳方式吗?
最佳答案
有一个文件关联告诉 Windows 如何处理某个文件扩展名。您可以输入 assoc
在 Windows 命令提示符中查看它们。举个例子:
C:\test>assoc .txt
.txt=txtfile
所以 Windows 现在知道扩展名为 .txt
的文件是 txtfile
.ftype
定义如何处理该文件类型:C:\test>ftype txtfile
txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1
因此,每当您双击文件时,Windows 都会检查它是否与任何文件类型相关联。然后查找,如何处理该文件类型并执行该命令(在上面的示例中,它以文件名作为参数打开记事本)。两者
assoc
和 ftype
能够更改设置(例如使用另一个编辑器打开 .txt
文件)。但是,如果您尝试这样做,请帮自己一个忙并记下原始设置,以便您可以在需要时恢复更改。也可以直接在注册表中进行更改(不推荐,当您没有处理注册表的经验时)
关于node.js - 文件资源管理器如何打开文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68909542/