2016-10-18 5 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

Ваш } персонажей неуместны. Код wad отредактирован и в отредактированном коде, он пропускает символ } в конце.
Для информации, в оригинале, один был неуместным, а другой отсутствовал (последний), я считаю.

Попробуйте это:

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

Исключение в потоке "основного" java.lang.NullPointerException на WalkDirectory.showFiles (WalkDirectory.java:16) в WalkDirectory. main (WalkDirectory.java:11)

I sup поза, что NPE срабатывает в Еогеасп

for (File file : files) 

, так как файлы массив nulL.

Вы должны написать, что проверить, что папка существует:

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

Добро пожаловать :) Но в этом случае я не думаю, что это проблема компиляции, но исключение во время выполнения. Можете ли вы опубликовать stacktrace со всей информацией? – davidxxx

+0

Исключение в потоке «основного» java.lang.NullPointerException \t в WalkDirectory.showFiles (WalkDirectory.java:16) \t в WalkDirectory.main (WalkDirectory.java:11) –

0

Если вы в Windows, окр, я думаю, что проблема в том, как вы объявляете путь: «C:/SampleDir» .. Try с чем-то вроде этого:

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

Я пробовал, и он не работает. Я просто хочу напечатать образец каталога (SampleDir), который я создал, расположенный на моем рабочем столе. Каким будет правильный путь для записи пути к моему каталогу (SampleDir)? Спасибо! –

+0

Я проверил ваш код на ubuntu с помощью этого пути «/ home/myname/desktop/mydir», и он работает. Вы можете найти точный путь к файлу SampleDir следующим образом: щелкните правой кнопкой мыши по папке SampleDir -> properties -> file path. Вы работаете в ОС Windows или Unix? – user6904265

+0

Я использую Mac OS. Как найти точный путь к файлу? –

Смежные вопросы