【问题标题】:Java - How to change icon of folderJava - 如何更改文件夹的图标
【发布时间】:2012-03-08 23:40:19
【问题描述】:

那么如何在Java(Windows系统)中更改文件夹的图标是否有一个类或什么原因导致我搜索过但我找不到任何东西......

【问题讨论】:

  • 您是指JFileChooser 中显示的图标吗?还是 Windows 用于该文件夹的实际图标,无论是否涉及 Java?
  • 您需要使用windows API。我不知道该 API 部分的任何 Java 包装器,因此您必须制作一个调用相应 C 函数的小型 JNI 程序。我假设您的意思是 Windows 资源管理器中的图标?或者,如果您的意思是单个文件夹,那么只需使用这个:stackoverflow.com/questions/1115012/custom-windows-folder-icon
  • 是的,我的意思是我的实际文件夹,所以我需要修改每个文件夹中隐藏的 ini 文件,使其指向我想要的图标吗?
  • @TheByt3 并非每个文件夹都有该文件。因此,如果它不存在,那么您需要先创建它。您可以像文本文件一样写入它,但如果您可以容忍 JNI,最好使用某种 INI-Class 或 Windows-API,但这可能有点矫枉过正。
  • 是的,我对编程有点陌生,我只知道如何用 java 和 c 编写代码,所以我猜你要告诉我的是,像文本文件一样写入或 make 并不是那么好它但最好使用 INI 类(我想我可以在 Java 和 C++ 中找到那种类型的类,但我想在 C++ 中会更好)或者使用我不知道它是什么的 Windows-API:P

标签: java windows icons directory


【解决方案1】:

根据 cmets,您所说的文件夹图标是在文件夹本身的隐藏“ini”文件中指定的。

可以通过将文件读取为文本等来创建/修改文件,但使用现有的第 3 方 Java 库更简单。我已经成功使用了开源的ini4j Java 库。

【讨论】:

    【解决方案2】:

    我使用ini4J 做到了这一点,它只在一种情况下与我一起工作:文件夹路径不应有任何空间。

    代码:

    // Create destop.ini file 
    writer = new BufferedWriter("your folder path without any spaces");
    writer.write("");
    writer.close();
    
    // Set file attributes hidden and system and set folder as system folder and not hidden
    Wini ini = new Wini("your folder path without any spaces");
    String field = "icon Path" + ",0";
    ini.put(".ShellClassInfo", "IconResource", field);
    ini.store();
    Process processCreateFile = Runtime.getRuntime().exec("attrib +h +s " + "desktop.ini file path");
    Process processCreateFolder = Runtime.getRuntime().exec("attrib -h +s " + "your folder path without any spaces");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      • 2020-01-02
      • 2013-10-21
      • 2012-09-13
      • 1970-01-01
      • 2012-09-27
      相关资源
      最近更新 更多