2

NetBeans プラットフォームアプリケーションのユーザーディレクトリに新しいファイルを作成する方法は? 私が使用した:

System.getProperty("netbeans.user", "user.home") + "/myfile");

しかし、NB IDE 7.1.1 は、廃止予定であり、代わりに InstalledFile Locator を使用する必要があると教えてくれました。わかりました、私はこれを試しました:

File file = InstalledFileLocator.getDefault().locate("myfile", null, false);

ファイルが既に存在する場合は、正常に機能します。InstalledFileLocator を使用して新規作成する方法がわかりません。しかし、javadoc によると、このメソッドではフォルダーを取得できます。だから私はこれを試しました:

File file = InstalledFileLocator.getDefault().locate("myfile", null, false);
if (file == null) {
  file = new File(InstalledFileLocator.getDefault().locate("", null, false), "myfile");
}

再び成功しませんでしたが、 locateメソッドは何も見つからずに失敗しました ("/" は禁止されており、機能しません)。

私の質問は、NetBeans プラットフォーム アプリケーションで既存のファイルをユーザー ディレクトリ (書き込み用でもあるため、プログラム ディレクトリにあるべきではありません) に正しくロードし、存在しない場合は作成する方法です。

4

3 に答える 3

2

Places.getUserDirectory()を使用できます。

File file = InstalledFileLocator.getDefault().locate("myfile", null, false);
if (file == null) 
{
   file = new File(Places.getUserDirectory() + File. separator + "myfile");
}
于 2015-01-11T15:15:38.503 に答える
1

おそらく最も簡単な方法は、ユーザー ディレクトリに自動的にインストールされる単純な空のファイル ("here.txt" など) をモジュールに含めることです。この例をここで見ることができます(「教訓: NetBeans モジュールにファイルをバンドルする」セクションを参照してください)。

基本的に、モジュールの「release/modules/ext/here.txt」ディレクトリにファイルを含めます。

モジュールがインストールされると、プラットフォームはモジュールに含まれる 'here.txt' ファイルをユーザー ディレクトリに自動的にインストールするので、これについて心配する必要はありません。

モジュールが実行中にインストールされたら、次のようにファイルを見つけます。

File hereTXT = InstalledFileLocator.getDefault()
    .locate("modules/ext/here.txt", 
    "a.b.c",
    false);

(「abc」はモジュール識別子です。)

そして、その 'hereTXT' ファイルから 'hereTXT.getParent()' を使用してディレクトリを取得でき、これで準備は完了です。

于 2012-04-06T21:58:34.077 に答える
1

netbeans プラットフォームのドキュメントから、InstalledFileLocator を使用してシステム ファイルシステム上のリソースを検索しないでください。システム ファイルシステムでデータを検索するには、Filesystems API を使用します。元:

FileObject fo = FileUtil.getConfigFile(myfile);
  if (fo == null) {
        fo = FileUtil.getConfigRoot().createData(myFile,ext);
  }
于 2012-04-06T21:31:08.613 に答える