Javaでデスクトップのパスを取得する(Windows)
ファイルを生成して出力する時にデスクトップに出力しようと思いました。
VBAだと「SpecialFolders」プロパティを利用すると、
簡単に特殊フォルダのパスを取得することができるので、
同じ様なAPIがあるだろうと思ったら意外と見つかりませんでした。
そんなわけで下記のような力技で取得しました。
private static String getDesktopPath() { String ret = ""; try { String cmdline = "reg query \"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\" /v Desktop"; String line = ""; Process pc = Runtime.getRuntime().exec(cmdline); BufferedReader br = new BufferedReader(new InputStreamReader(pc.getInputStream())); while ((line = br.readLine()) != null) { if (line.indexOf("Desktop") != -1) { ret = line.substring(line.indexOf("C"), line.length()); } } br.close(); } catch (IOException e) { e.printStackTrace(); } return ret; }
ずばりデスクトップのパスはレジストリから取得しちゃいました。
とりあえず目的は果たしたので良しとします。
他にもっと簡単で美しい方法をご存じの方がいらっしゃったら是非教えて下さい。
この時間に食べたらあかんと思いつつ、いつも食べてしまう・・・そして増量する・・・そして凹む。