1

質問が述べているように、私はJFileChooserを使用してPath値を取得しようとしています。JFileChooserからの返品には、2つの問題があります。まず、私が行っていることの正確な性質は、ユーザーにディレクトリを選択させ、次に、他のすべてのファイルをそのままにして、そのフォルダ内の特定のタイプのすべてのファイル、たとえばすべての.pdfファイルの名前を変更することです。この点で私がJFileChooserで抱えている問題は2つあります。

1)JFileChooserにディレクトリ内のファイルを表示させる方法を理解しましたが、ユーザーがファイルを具体的に選択することはできません。ただし、文字列の戻り値には、「開く」がプッシュされたときにJFileChooser内で現在表示されているディレクトリは含まれません。たとえば、ユーザーがC:\ Documents and Settings \ myFolder \ Documents \ Workに移動し、Workディレクトリの内容を確認してから「開く」を押すと、getAbsolutePath()呼び出しとして返される文字列は「C:\Documents」になります。およびSetting\myFolder \Documents""作業"は返されません。それを最終結果に表示するにはどうすればよいですか?

2)その文字列を取得したら、その文字列をパスに変換して、その中のファイルを操作できるようにするにはどうすればよいですか?「\」はJavaのエスケープであり、ファイルパスを有効なパス値として使用するには、エスケープする必要があります。つまり、「C:\ Documents and Settings \ myFolder」は機能せず、「C:\Documents」である必要があります。およびSettings\myFolder」。JFileChooserから必要なダブルスラッシュ(\)パスへのシングルスラッシュ()リターン文字列から取得するにはどうすればよいですか?

答えはおそらく単純だと思います。私はLinuxを扱うことに慣れていますが、これは問題ではありません。プログラミングスキルを使って最初の仕事に就いたばかりです。もちろん、すべてがWindowsです。

そして、誰かが提案する前に、はい、私は「/」を使用すると相対パスで機能することを知っていますが、私が書いているアプリケーションでは、これらのファイルがホストマシンまたはネットワークドライブ上にある可能性があるため、絶対パスを使用する必要があります。ネットワークプログラミングの経験があまりないために何かを見落としている場合を除いて、相対的な命名を使用することはできません。

これに応答しない場合は、読んでくださった皆さんに感謝します。

トミー・マザーン

4

1 に答える 1

1

1.選択したディレクトリのパス全体を取得するには、次のようにします。

ここmyJfcにありinstance of JFileChoooser ます

String path =  myJfc.getSelectedFile().getAbsolutePath().toString();

2.次のコマンドを使用して、文字列をパスに変換します。

パスに「\」の代わりに「\\」を使用します。

すなわち。C:\\Documents and Settings\\myFolder

C:ドライブに適切な権限があることを確認してください。そうでない場合、ファイルはそこで作成されません。C:ドライブにファイルを作成する権限がない場合は、D:、E:などの他のドライブを試してください。など。そこには特権の問題はありません。

File f = new File(path);
于 2012-07-21T05:03:25.623 に答える