2016-10-18 14 views
0

私のコードはコンパイルされません。私はそれがディレクトリパスと関係していると思う、私はエラーメッセージが出てくるので。デスクトップにあるサンプルディレクトリ(SampleDir)を印刷しようとしています。誰かがディレクトリパスで私を助けることができますか?前もって感謝します!ディレクトリを印刷できません

public class WalkDirectory { 
    public static void main(String[] args) { 

     File [] files = new File("C:/SampleDir").listFiles(); 
     showFiles(files);    
    } 
    private static void showFiles(File[] files) { 

     for(File file: files) { 
      if(file.isDirectory()) { 
       System.out.println("Directory: " + file.getName()); 
       showFiles(file.listFiles()); // files from the existing directory or current directory 
      } 
      else { 
       System.out.println("File: " + file.getName()); 

      } 
     } 

    } 
+2

、エラーを提供してください。コンパイルする場合は、例外を指定してください。 – Compass

答えて

1

}の文字が正しく配置されていません。 コードワッドが編集されました。編集されたコードでは、末尾に}文字がありません。
情報については、原本では、1つは間違って配置され、もう1つは欠けていた(最後の)私は信じています。 WalkDirectoryで WalkDirectory.showFiles(WalkDirectory.java:16)でスレッド "メイン" のjava.lang.NullPointerExceptionに

import java.io.File; 

public class WalkDirectory { 

    public static void main(String[] args) {  
     File[] files = new File("C:/SampleDir").listFiles();  
     showFiles(files); 
    } 

    private static void showFiles(File[] files) { 

     for (File file : files) { 
      if (file.isDirectory()) { 
      System.out.println("Directory: " + file.getName()); 
      showFiles(file.listFiles()); // files from the existing directory or current directory 
      } 
      else { 
       System.out.println("File: " + file.getName());  
      } 
     } 

    } 
} 

EDIT

例外:

はそれを試してみてください。メイン(WalkDirectory.java:11)​​

ファイルの配列がnulLであるため、NPEは、foreachの

for (File file : files) 

にトリガーされることを提起します。

あなたはフォルダが存在することを確認するためにそれを書く必要があります。

public static void main(String[] args) { 
    final File dirWithFiles = new File("C:/SampleDir"); 

    //check folder exist and is a directory 
    if (!dirWithFiles.exist()) { 
     System.out.println("dir " + dirWithFiles + " does not exit"); 
     return; 
    } 
    if (!dirWithFiles.isDirectory()) { 
     System.out.println("dir " + dirWithFiles + " is not a directory"); 
     return; 
    } 
    // end check 
    File[] files = dirWithFiles.listFiles(); 
    showFiles(files); 
    } 

フォルダ管理が失敗した場合は、アプリケーションで使用される入力フォルダが存在することを、あなたのファイルシステムで確認する必要があります。

+0

davidxxxありがとうございますが、欠けているものはありません。私はここにコードを正しく貼り付けなかった。私はファイルパス名と関係があると思います。なぜなら、エラーメッセージが出てくるからです。感謝します。 –

+0

あなたは歓迎です:)しかし、この場合、私はそれがコンパイルの問題だとは思えませんが、実行時の例外です。すべての情報をスタックトレースに投稿できますか?上記スレッドWalkDirectory.mainでWalkDirectory.showFilesで "メイン" のjava.lang.NullPointerException \t(WalkDirectory.java:16) \t(WalkDirectory.java:11)​​ – davidxxx

+0

例外が私の例外のリストです。 –

0

あなたは、WindowsのENVにある場合、私は問題はあなたがパスを宣言する方法であると思う:「C:/ SampleDir」.. はそのような何かを試してみてください:それはコンパイルされません場合は

String path = "C:\\Documents and Settings\\Your User\\Desktop\\SampleDir"; 
File[] files = new File(path).listFiles(); 
+0

私はそれを試して、それは動作しません。私は自分のデスクトップ上に作成したサンプルディレクトリ(SampleDir)を印刷したいだけです。私のディレクトリ(SampleDir)に経路を書き込む正しい方法は何でしょうか?ありがとうございました! –

+0

私はあなたのコードをこのパス "/ home/myname/desktop/mydir"でubuntu上でテストしました。この方法でSampleDirの正確なファイルパスを見つけることができます:SampleDirフォルダ - >プロパティ - >ファイルパスを右クリックします。 WindowsまたはUnix OSをお使いですか? – user6904265

+0

私はmac OSを使用しています。正確なファイルパスを見つけるにはどうすればよいですか? –

関連する問題