java 开发时希望获取到快捷方式的真实路径。去年已经实现过了,但最近再次使用时,确总是报错。异常信息如下:

Exception in thread "main" java.lang.RuntimeException: Failed to load ShellLinkat net.jimmc.jshortcut.JShellLink.load(JShellLink.java:233)at application.util.OpenAppUtil.main(OpenAppUtil.java:357)
Error: Failed to load shortcut

调试了好久,最终找到了原因,是因为使用的编码不对。之前java文件是使用的GBK格式编码。现在这个项目使用了UTF-8格式编码。所以导致路径中有中文或特殊符号就会报错。将java文件编码格式改为GBK就好了。

JShellLink 依赖:jshortcut-0_4.jar  和 jshortcut.dll 。 需要把这2个加入运行环境。

例子:

//获取桌面路径String desktop = FileSystemView.getFileSystemView().getHomeDirectory().getAbsolutePath();File desktopF = new File(desktop);//桌面所有文件夹File list[] = desktopF.listFiles();for (int i = 0; i < list.length; i++) {if(list[i].getName().endsWith(".lnk") ){String linkName = list[i].getName();//去掉".lnk"后缀linkName = linkName.substring(0, linkName.length() - 4);JShellLink link = new JShellLink(desktop, linkName);link.load();String path = link.getPath();
//              System.out.println(list[i].getName());System.out.println("path:" + path);}}

输出结果:

另附上修改jshortcut.dll,使之支持utf-8方式的方法。

https://www.cnblogs.com/xlqwe/p/9182828.html

通过JShellLink获取快捷方式(.lnk格式文件)的真实路径相关推荐

  1. linux获取lnk文件的源目标路径,通过快捷方式lnk获得文件真实路径

    通过快捷方式.lnk获得文件真实路径 前提 最近开发资源管理,需要预先上传大量资源,负责整理资源的同学因为空间不足,直接用快捷键方式整理视频资源OTZ,所以只能想办法通过.lnk文件获得文件的真实地址 ...

  2. Android 打开文件管理器 获取文件的真实路径

    1. onCreate 部分 public class MainActivity extends AppCompatActivity { Button btn; @Override protected ...

  3. 怎么在mac系统下查看文件的真实路径

    大家好,我是寒溪净轩,今天教大家怎么在mac系统下查看文件的真实路径. 第一步:打开终端 第二步:将需要查看路径的文件拖到终端,就可以在终端看到该文件的真实路径啦.

  4. Python获取当前目录下所有文件的绝对路径并存储在文件中

    Python获取当前目录或者其他指定目录下所有文件的绝对路径并存储在文件中,程序如下: import osfid = open('GetAbsolutePath.txt', 'w')rootdir = ...

  5. bam获取序列_bam格式文件处理大全(四)

    sam文件是短序列比对生成的文件,是二代测序中最核心的文件.在RNAseq,变异检测等分析中,都需要首先生成sam文件格式.bam文件是sam格式的二进制格式,转换为二进制之后,可以减小文件的存储.掌 ...

  6. 获取所有某格式文件到文件

    '扫描文件 sub scan(folder_) Set fso=createobject("scripting.filesystemobject") set folder_=fso ...

  7. C# 获取可执行文件EXE(文件夹)路径大全

    一.获取完整包含执行程序的路径:exe文件所在的目录+.exe文件名 1.方法1:Type.Assembly.Location //获取当前进程的完整路径,包含文件名(进程名). string str ...

  8. Unity+Android 打开安卓文件管理器,并拿到文件的真实路径

    搞了个最新的package(支持安卓以及IOS),下载导入到Unity里面就行: 下载链接:Unity+Android PickFile Java代码 package com.zrqz.filebro ...

  9. 使用 Python 读取 json 格式文件并查重

    场景如下: 格式为 json 的文件中存在多行测试数据,需要判断文件中 "esbsn" 字段的值是否存在重复数据 {"time":"2022-08-0 ...

最新文章

  1. 跨界 | 土木工程也开始AI化了:用卷积神经网络实现结构损伤视觉识别
  2. 波士顿动力最新仓储机器人,每小时“搬砖”800块
  3. AWR baseline template的管理
  4. 工程是.java文件_1.8 工程相关解析(各种文件,资源访问)
  5. vue-cli 自定义指令directive 添加验证滑块
  6. 敏捷开发:软件与文档
  7. 【gitlab】gitlab快速部署教程
  8. PyTorch基础(part7)--CNN
  9. php设置上传文件大小限制_php修改上传文件大小限制实例详解
  10. Chrome Cookie SameSite 属性设置
  11. 这个C怎么了?求大佬指教
  12. 树,森林,二叉树之间的转换
  13. 工厂员工晋升机制_维修厂如何设置员工晋升机制?
  14. c语言输入n打印数字菱形,打印数字菱形,急啊,帮帮小女子啊。。。
  15. powershell如何ping
  16. HDU6322 Problem D. Euler Function【欧拉函数+数学规律】
  17. 黑马程序员—黑客与画家——工作3年再转型(附赠大绝招)
  18. 5G手机的赛点争夺战
  19. 机器人领域期刊会议汇总
  20. LeetCode781森林中的兔子题解

热门文章

  1. [数据结构] python 栈的介绍
  2. 美国SAP高手跳槽记-转自George
  3. 哆啦导航 哆啦A梦新番 剧场版 新番 中篇 哆啦A梦七小子 机器猫吧大全
  4. 管理感悟:平和的心态是企业平稳发展的决定因素
  5. 可以升级鸿蒙性价比高的华为手机,华为开启鸿蒙系统推送,15款华为手机可率先升级,看看有你的吗?...
  6. 用Java写有关早上的语录,关于早上好的句子
  7. jsp024ssm汽车配件管理系统
  8. 在线直播平台建设必备之物,斗鱼虎牙有同款,它就是……
  9. 韩国EN电源维修EnerStream20直流电源维修详解
  10. android判断某文件下是否you_android判断图片类型 判断文件是否为图片文件 - 电脑常识 - 服务器之家...