node.js - 文件资源管理器如何打开文件?

标签 node.js windows cmd

这可能是个愚蠢的问题,但是当我双击单词 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 都会检查它是否与任何文件类型相关联。然后查找,如何处理该文件类型并执行该命令(在上面的示例中,它以文件名作为参数打开记事本)。
两者 assocftype能够更改设置(例如使用另一个编辑器打开 .txt 文件)。但是,如果您尝试这样做,请帮自己一个忙并记下原始设置,以便您可以在需要时恢复更改。
也可以直接在注册表中进行更改(不推荐,当您没有处理注册表的经验时)

关于node.js - 文件资源管理器如何打开文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68909542/

相关文章:

iis - 使用 appcmd 向 IIS 添加站点和绑定(bind)(使用主机名、端口和 IP 地址)

node.js - 我无法在我的 gulp 项目中安装 gulp-sass 模块

javascript - 递归序列化对象

python - 关于Python路径何时使用 `/`以及何时使用 `\`

java - 确保 .Bat 窗口关闭并且整个 Java 程序在完成后停止运行

Windows 上的 Java Unicode 问题

javascript - Electron:我们可以使用其唯一 ID 访问 BrowserWindow 吗?

javascript - 如何在 Node js中将主机名解析为IP地址

windows - 如何强制删除文件?

c++ - Windows 中的堆随机化