web-dev-qa-db-ja.com

JFileChooser-現在のディレクトリで開く

単純なJFileChooserを次のように設定しています

JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
chooser.setFileFilter(new FileFilter() {
     ...
});

int v = chooser.showOpenDialog(this);
if (v == JFileChooser.APPROVE_OPTION) {
     File file = chooser.getSelectedFile();
     System.out.println(file.getAbsolutePath());
}

ご覧のように、このFileChooserは現在のディレクトリから始まります。このディレクトリは、私のNetbeansプロジェクトではプロジェクトフォルダのルートです。問題は次のとおりです。ファイルを選択して絶対パスを出力すると、パスに"."が含まれます。たとえば、私が得る出力は次のとおりです。

/Users/MyName/Folder1/Folder2/./Temp.xls

もちろん、これは奇妙です。特に、これをユーザーに表示しているからです。さて、私はハッキーであり、その"/./"部分を取り除くためにいくつかの楽しいポスト部分文字列処理を行うことができます。しかし...この問題を解決するための非怠惰なプログラマーの方法はありますか?前もって感謝します!

17
CodeGuy

システムプロパティ「user.dir」を次のように使用します。

File workingDirectory = new File(System.getProperty("user.dir"));
chooser.setCurrentDirectory(workingDirectory);
31
Nathaniel Jones