Java 为什么在读取目录时无法访问windows快捷方式

Java 为什么在读取目录时无法访问windows快捷方式,java,c#,node.js,windows,desktop-shortcut,Java,C#,Node.js,Windows,Desktop Shortcut,最近,我尝试编写一个小应用程序来帮助我在桌面上排序快捷方式 我很快注意到系统或应用程序(安装程序、steam“创建快捷方式”功能等)创建的快捷方式(.lnk、.url)没有出现在已处理文件的列表中 考虑到问题来自Java,我还用C#、Dart和NodeJS进行了测试,每次都得到了相同的结果:使用右键单击菜单的“创建快捷方式”功能创建的快捷方式被我的程序很好地看到和处理,系统创建的快捷方式被忽略,并且不在列表中 从授权的角度来看,系统创建的快捷方式是否具有不同的“标记”?有没有办法处理它们 我附加

最近,我尝试编写一个小应用程序来帮助我在桌面上排序快捷方式

我很快注意到系统或应用程序(安装程序、steam“创建快捷方式”功能等)创建的快捷方式(.lnk、.url)没有出现在已处理文件的列表中

考虑到问题来自Java,我还用C#、Dart和NodeJS进行了测试,每次都得到了相同的结果:使用右键单击菜单的“创建快捷方式”功能创建的快捷方式被我的程序很好地看到和处理,系统创建的快捷方式被忽略,并且不在列表中

从授权的角度来看,系统创建的快捷方式是否具有不同的“标记”?有没有办法处理它们

我附加我的NodeJS测试代码,如果需要,我可以共享其他代码。 我还指定我的所有测试都是使用Windows 10 Pro 1909(18363.657)在管理员帐户上执行的

const fs=require(“fs”);
const os=要求('os');
const path=require('path');
var desktopPath=fs.readdirSync(`${os.homedir()}${path.sep}Desktop`);
对于(变量i=0;i

谢谢你的关注

您看到的桌面是多个桌面文件夹的组合

C:\Users\{username}\Desktop
C:\Users\Public\Desktop
…

右键单击“属性”以查看链接的存储位置。

很好,它们似乎位于公用/桌面文件夹中,而不仅仅位于${user}/Desktop文件夹中。今晚我就不那么傻了,谢谢你@the_lotus。注意,用户的桌面不一定在用户配置文件目录“C:\Users\{username}中的默认位置,所以
${os.homedir()}${path.sep}desktop
是错误的。程序必须通过shell C API函数
SHGetKnownFolderPath(FOLDERID\u Desktop,…)
查询shell的位置。谢谢您提供的信息。我会调查的。