2012-03-06 5 views
0

次のコードに問題があります。新しいファイルを作成する前にファイルが存在するかどうかを確認するために既存のディレクトリを調べようとしていますが、ディレクトリに既存のファイルがない場合でも新しいファイルを作成するようには見えません。関連する2つの方法を添付しましたが、問題はwriteFile()メソッドにあります。私はwriteFileで既存の 'dir'を使用しようとしましたが、これはやりませんでした。プログラムの残りの部分はうまくいくようですが、ちょうどwriteFileメソッドに問題があります。あなただけのディレクトリとファイル名のファイルを作成したりしても、それは存在だ確認するための、完全なパスを指定する必要がないファイルディレクトリとファイル作成の問題

public void writeFile(String t) throws IOException { 
    File temp1 = new File(dateNow + File.separator + "Temperature.txt"); 
    boolean check = temp1.exists(); 
    if (!check) 
     newFiles(); 
} 

public void newFiles() { 
    SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); 
    dateNow = formatter.format(now.getTime()); 
    System.out.println(dateNow); 
    // if (hour == 00 && mini == 00 && sec == 00) { 
    try { 
     dir = new File(dateNow); 
     boolean x = dir.mkdir(); 
     // .... 
    } catch (Exception e) { 
     // 
    } 
} 
+1

完全なコードを投稿してください – michael667

+0

あなたのコードのどこにもファイルを作成していません。現在のフォルダー(プログラムが実行しているフォルダー)に***サブディレクトリー***を作成するように要求しましたが、その操作のブーリアン・リターンをチェックして成功したかどうかは確認しませんでした。また、あなたの例外を使って何かをする必要があります、あなたはコードを表示しているようにそれらを飲み込むべきではありません。 – Perception

答えて

1

、。 michael667ありがとう、あなたは相対的な位置について正しいことを思い出させる。 :) と上記のコードに問題はありません。

+1

それは当てはまりません。相対パスは現在の作業ディレクトリからの相対パスです。 – michael667

+0

どのようにファイルではなくディレクトリをチェックするのですか? – user1106130

+0

デスクトップからコンパイルすると動作しますが、フォルダには機能しませんでしたか? – user1106130