问题描述
当我们从FileChooser java中读取时如何获取快捷方式(即lnk文件)的路径
我们有一个环境,将实际文件存储在服务器中,并将快捷方式文件提供给用户。 用户从应用程序中选择快捷方式文件,但是当我们选择快捷方式文件时,它将读取目标文件。 现在,如何获取快捷方式文件路径 FileChooser 始终获取目标文件路径 并且还想知道如何识别该文件是快捷文件还是常规文件?因为 FileChooser 始终指向目标文件。
这是使用的文件选择器
FileChooser fileChooser = new FileChooser();
File file = fileChooser.showOpenDialog(argument);
解决方法
假设您使用的是JavaFx FileChooser
:如果将.lnk
添加到文件扩展名列表,FileChooser将返回原始的.lnk
文件路径,否则似乎将路径名解析为链接目标。
尝试使用此代码段启动FileChooser。选择一个LNK文件。即使链接是JPG文件,它也会打印原始LNK文件路径:
FileChooser fc = new FileChooser();
fc.setTitle("Select a lnk");
fc.setInitialDirectory(dir.toFile());
ObservableList<ExtensionFilter> extensionFilters = fc.getExtensionFilters();
extensionFilters.addAll(new ExtensionFilter("Shortcuts","*.lnk"),new ExtensionFilter("Images","*.jpg"));
File f = fc.showOpenDialog(primaryStage);
System.out.println("f="+f);