gpt4 book ai didi

java - 管理有关 .lnk 文件的元数据

转载 作者:太空宇宙 更新时间:2023-11-04 11:49:04 29 4
gpt4 key购买 nike

我在Windows的“最近的项目”中有一些文件夹/文件。我想做的是我想知道“最近的项目”中存在的.lnk快捷方式的所有文件/文件夹的真实路径。我想要这样的结果。本地路径:C:\Program Files (x86)\Windows Live\Mail\wlmail.exe

我的代码已给出

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package sir.aimal;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributeView;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.FileTime;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
*
* @author zeeshan
*/
public class SirAimal
{


public static void main(String[] args) throws IOException
{
String user=System.getProperty("user.name");
String path="C:\\Users\\"+user+"\\AppData\\Roaming\\Microsoft\\Windows\\Recent\\";

File directory = new File(path);
File[] fList = directory.listFiles();

for (int i=0;i<fList.length;i++)
{
String filename=fList[i].getName();
String actualfilename=filename.replace(".lnk", "");

Path p = Paths.get(path+filename);


BasicFileAttributes view= Files.getFileAttributeView(p, BasicFileAttributeView.class).readAttributes();
FileTime fileTime=view.creationTime();
System.out.println(actualfilename+"\t\t"+new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format((fileTime.toMillis())));


}

}


}

最佳答案

在 for 循环中尝试一下:

ShellFolder sf = ShellFolder.getShellFolder(flist[i]);
ShellFolder target = sf.getLinkLocation();
if (target != null) {
System.out.println(target.getAbsolutePath());
}

这是有关该类的一些文档:

http://srcrr.com/java/oracle/openjdk/6/reference/sun/awt/shell/ShellFolder.html

请注意:此方法将通过 Windows API 访问快捷方式,这与双击它的结果相同。因此,对于每个损坏的链接,Windows 都会向您显示一条弹出消息,要求您浏览到文件的当前位置或删除损坏的链接。这是“快速而令人讨厌”的解决方案,应该适合您。如果您想要更复杂的代码,请查看此答案:

https://stackoverflow.com/a/9403438/3830952

关于java - 管理有关 .lnk 文件的元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42033511/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com