私のアプリケーションは例外をスローします - java.io.FileNotFoundException:無効なファイルパスです。理由は分かりません。私はテーマについての質問と回答を読んだが、誰も私を助けなかった。ここで無効なファイルパスの例外
はコードです:
String userhome = System.getProperty("user.home");
String filename = null;
File rdp = null;
for (int item = 0; item < darab; item++) {
filename = toValidFileName(ProgramList.get(item).getP_name());
filename += ".rdp";
rdp = new File(userhome, filename);
try {
JFrame panel;
panel = new JFrame();
panel.setSize(400, 10);
panel.setLocation(300, 400);
panel.setTitle("Saving " + rdp.getAbsolutePath());
try (FileOutputStream fstr = new FileOutputStream(rdp)) {
panel.setVisible(true);
char c;
for (int j = 0; j < 2336; j++) {
c = ProgramList.get(item).p_body.charAt(j);
fstr.write(c);
}
fstr.flush();
fstr.close();
panel.setVisible(false);
}
} catch (IOException ioe) {
JOptionPane.showMessageDialog(this,
ioe.getMessage(), "Save rdp file", JOptionPane.ERROR_MESSAGE);
System.err.println(ioe.getMessage() + " : "+ rdp.getAbsoluteFile());
}
}
そして結果: 無効なファイルのパス:C:\ユーザーは)
toValidFilename(LIPI \ CosmicLd.rdpを\(から禁止された文字を削除していますKORG RADIAS)プログラム名を入力して有効なファイル名を作成します。 。
私は私のせいを見つけていませんでした:( 先のディレクトリが読み取り専用されていない、私は行の後file.canWriteを()表示すると、ユーザーは必要なprivilegsがあります RDP =新しいファイル(USERHOME、ファイル名); それは常にfalseです 私が間違って何をしました おかげ
ファイルチョイスでファイルを選択して作業しているとします。 –
スタックトレースとtoValidFileNameコードを投稿しますか? – efekctive
同じファイルをファイル・チェイサーで選択し、ファイル名を出力してください。失敗した名前と名前を比較してください。空白を調べてください。 – Arkadiy