How to make a button that, when clicked, opens the %appdata% directory?

佐手、 提交于 2019-11-29 12:44:37
import java.awt.Desktop;
import java.io.File;

public class OpenAppData {

    public static void main(String[] args) throws Exception {
        // Horribly platform specific.
        String appData = System.getenv("APPDATA");
        File appDataDir = new File(appData);
        // Get a sub-directory named 'texture'
        File textureDir = new File(appDataDir, "texture");
        Desktop.getDesktop().open(textureDir);
    }
}

Execute a command using Runtime.exec(..). However, not every OS has the same file explorer, so you need to handle the OS.

Windows: Explorer /select, file

Mac: open -R file

Linux: xdg-open file

I wrote a FileExplorer class for the purpose of revealing files in the native file explorer, but you'll need to edit it to detect operating system. http://textu.be/6

NOTE: This is if you wish to reveal individual files. To reveal directories, Desktop#open(File) is far simpler, as posted by Andrew Thompson.

If you are using Windows Vista and higher, System.getenv("APPDATA"); will return you C:\Users\(username}\AppData\Roaming, so you should go one time up, and use this path for filechooser, Just a simple modified Andrew's example,

    String appData = System.getenv("APPDATA");
    File appDataDir = new File(appData); // TODO: this path should be changed! 
    JFileChooser fileChooser = new JFileChooser(appData);
    fileChooser.showOpenDialog(new JFrame());

More about windows xp, and windows vista/7/8

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!