私は、ユーザーの "My Documents"フォルダにファイルを保存します。Javaの "My Documents"フォルダを見つける方法
私はこのような場所になってみました。すると
System.getenv("USERPROFILE") + "\\My Documents\\"
を、私はこれは、言語は、例えばフランスの別の言語に設定されているシステムでは動作しません実現しました。
「マイドキュメント」フォルダを効率的に取得する別の方法はありますか?
私は、ユーザーの "My Documents"フォルダにファイルを保存します。Javaの "My Documents"フォルダを見つける方法
私はこのような場所になってみました。すると
System.getenv("USERPROFILE") + "\\My Documents\\"
を、私はこれは、言語は、例えばフランスの別の言語に設定されているシステムでは動作しません実現しました。
「マイドキュメント」フォルダを効率的に取得する別の方法はありますか?
あなたは明らかにこのトリックを使用することができますスイングに応じて、気にしない場合:
import javax.swing.JFileChooser;
javax.swing.filechooser.FileSystemView;
public class GetMyDocuments {
public static void main(String args[]) {
JFileChooser fr = new JFileChooser();
FileSystemView fw = fr.getFileSystemView();
System.out.println(fw.getDefaultDirectory());
}
}
は、Javaでの特別なフォルダ名にアクセスするためのwinfoldersjava JNI extensionがありますhttp://technet.microsoft.com/en-us/library/cc749369(WS.10).aspx
Javaの場合は機能しません – abhilash
"%CSIDL_PERSONAL%\ doc.txt"は、Javaの場合でもマイドキュメントフォルダのdoc.txtファイルを開きませんか? –
おそらく、あなたのプログラムはもはやプラットフォームに依存しません。上記のようにSwing FileSystemViewのテクニックを使う方が良いでしょう。これはクロスプラットフォームで動作し、他のJavaアプリケーションと同じデフォルトに従うということです(常に一貫性があります)。 –
を見てみましょう。
winfoldersjavaページには、スイングを使用して別の方法を説明します
また、あなただけの「マイドキュメント」のパスを必要とし、あなたがWinFoldersJavaを必要としない場合があり感動スイングを気にしない場合。代わりに、javax.swing.filechooser.FileSystemView.getFileSystemView()。getDefaultDirectory()を使用できます。
そのディレクトリの場所は、各ユーザーが変更することができ、ロケールに依存するだけではありません。
そのフォルダの場所を調べるには、レジストリを調べる必要があります。 Windowsはそうするためのコマンドのいずれかです:
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User
Shell Folders" /v personal
または
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell
Folders" /v personal
がないことを確認、実際にその場所が、それはそれらの一つです。パフォーマンスに関しては
これらのレジストリエントリは、シェルAPIと呼ばれる他のプログラムのいずれかが作成されるまで作成されません –
、これはJFileChooser
を使用するよりも高速です:私のPCで
FileSystemView.getFileSystemView().getDefaultDirectory().getPath()
は、JFileChooser
アプローチは、300ミリ秒を必要とし、FileSystemView
直接必要未満100ミリ秒を呼び出します。
Mac OS Xの場合、これを使用した結果、1つのディレクトリが実際には高すぎます。 – Trejkaz
これは存在しないフォルダを指します... c:\ Users \ \ Documents。私のシステム上のドキュメントフォルダはMy Documentsと呼ばれます。 –
JavaLatte
@JavaLatte実際の名前は本当ですか?エクスプローラは、ディレクトリが "Documents"という名前であっても、 "My Documents"として表示します。パスバーをクリックすると、実際のパスが表示されます。 –