0

そのディレクトリ内にディレクトリとcsvファイルを作成しようとしています。ディレクトリは作成されますが、ファイルの作成時に例外が発生します これが私のコードです

 File dirName = new File("C:\\Umair\\Trace Bandwidth Statistics");
 if (!dirName.exists())
     dirName.mkdir();
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");  
        File file = new File( dirName + "\\"+ df.format(new Date()) +"_Statistics.csv"); 
        if ( !file.exists() )
            file.createNewFile();

この例外が発生します java.io.IOException: ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありません

何か案が?

ありがとう

4

4 に答える 4

6

この文字:は Windows のファイル名に使用できないためdf.format(new Date())、ファイル名にその部分を追加することはできません

Windows のファイル名規則は次のとおりです。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx

于 2013-09-25T10:30:10.407 に答える
1

これは Windows ファイル システムであるため、不正な文字が含まれていることに基づいてファイル名を拒否していると思います。例:「:」

(また、余談ですが、安全のために、mkdir() ではなく mkdirs() を使用します。また、アプリケーションを \ の代わりに / を使用する環境に移動する必要がある場合に備えて、\ の代わりに File.separator を使用することに慣れてください)

于 2013-09-25T10:34:16.970 に答える
0

Windows では、以下は予約済みの文字であり、ファイル名には使用できません。

  • < (未満)
  • > (より大きい)
  • : (コロン)
  • " (二重引用符)
  • / (スラッシュ)
  • \ (バックスラッシュ)
  • | | (縦棒またはパイプ)
  • ? (疑問符)
    • (アスタリスク)

ファイル名に追加する日付の一部として使用:しているため、ファイルは作成されません。

于 2013-09-25T10:34:49.737 に答える