gpt4 book ai didi

java - 通过修改 desktop.ini 更改图标的文件夹

转载 作者:可可西里 更新时间:2023-11-01 10:07:38 25 4
gpt4 key购买 nike

我的目标是使用 Java 将我的电影库的每个文件夹的图标更改为 Windows 中每个文件夹的图标。

每个文件夹中都有一个 256x256 的图标,以文件夹命名,但具有适当的扩展名。例如,名为 5cm Per Second 的文件夹中有文件 5cm Per Second.ico

我想我可以通过修改文件夹中的 desktop.ini 文件来做到这一点。所有文件夹中都有该文件,因为每个文件夹中的图标曾经是文件夹的实际图标,但在我更改电影库的路径后,desktop.ini 中的图标路径没有得到更新。

每个desktop.ini 看起来像这样:

[.ShellClassInfo]

IconResource=F:\Anime\Movies\5cm Per Second\5cm Per Second.ico,0

现在图标所在的路径是这样的:E:\Movies\5cm Per Second\5cm Per Second.ico 所以我想我所要做的就是改变 desktop.ini 到此:

[.ShellClassInfo]

IconResource=E:\Movies\5cm Per Second\5cm Per Second.ico,0

那根本不起作用,然后我想我也应该让 Windows 知道 desktop.ini 是一个系统文件,我将它添加到我的代码中,但那根本不起作用。

我为该示例文件夹编写的代码:

import java.io.File;
import java.io.IOException;
import org.ini4j.Wini;

public class ListFiles {

public static void main(String[] args) throws IOException {

// Directory path here
String path = "E:\\Movies\\5cm Per Second";

String fileName;
File folder = new File(path);
File[] listOfFiles = folder.listFiles();

for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
if ("ini".equals(getExtension(listOfFiles[i])))
{
File theFile = listOfFiles[i];
Wini ini = new Wini(theFile);
String iconPath = theFile.getParent() + ".ico";
String field = iconPath + ",0";
ini.put(".ShellClassInfo", "IconResource", field);
Runtime.getRuntime().exec("attrib +H " + theFile.getAbsolutePath());
}
}
}
}

public static String getExtension(File theFile) {
String extension = null;
String fileName = theFile.getName();
int i = fileName.lastIndexOf('.');

if (i > 0 && i < fileName.length() - 1) {
extension = fileName.substring(i + 1).toLowerCase();
}

if (extension == null) {
return "";
}
return extension;
}
}

如您所见,我将 IconResource 字段编辑为我需要它使用 ini4j 库的字段,然后我更改了 desktop.ini 的属性 到隐藏和系统。

看来这还不够,我真的不知道还能做什么。

最佳答案

您没有调用 ini.store() ,这可能会将更改写入磁盘。

关于java - 通过修改 desktop.ini 更改图标的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12759709/

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