2015-10-09 2 views
-1

Я пытаюсь создать программу, которая покажет все файлы и каталоги в данном каталоге и размер каждого элемента. для размера папок Я использовал https://stackoverflow.com/a/2981241/4645644, поскольку он кажется приятным и понятным для меня. Я заметил, что когда я пытаюсь использовать GetFiles() или GetDirecories(), я получаю исключение, если его нет. Я попытался написать консоль, когда это произойдет, но ничего не записано на консоль, но она не делает , попробуйте, и я не понимаю, что происходит или что я пропустил.Исключение исключение

public static void Main(string[] args) 
{ 
    Console.WriteLine("write path folder"); 
    string path = Console.ReadLine(); 
    DirectoryInfo di = new DirectoryInfo(@path); 
    //int check=1; 
    bool iterating = true; 
    if (!Directory.Exists(path)) 
    { 
     Console.WriteLine("{0} not found , path is wrong or there is no such directory", path); 
    } 
    else 
    { 
     while (iterating) 
     { 
      Console.WriteLine("Name,Root,Parent -> {0},{1},{2}", di.Name, di.Root, di.Parent); 
      Console.WriteLine("{0} full size is : {1}", di.Name, DirSize(di)); 
      try 
      { 
       foreach (DirectoryInfo sfolder in di.GetDirectories()) 
       { 
        Console.WriteLine("Folder Name: {0} , Folder size - {1} KB", sfolder.Name, DirSize(sfolder)); 
       } 
      } 
      catch 
      { 
       Console.WriteLine("No subfolder in thie folder : {0}", di.FullName); 
      } 
      try 
      { 
       foreach (FileInfo sfile in di.GetFiles()) 
       { 
        Console.WriteLine("File name : {0} , File size - {1} KB", sfile.Name, sfile.Length); 
       } 
      } 
      catch 
      { 
       Console.WriteLine("No files in thie folder : {0}", di.FullName); 
      } 

      iterating = false; 
     } 
    } 
} 
+2

Что происходит, когда вы проходите через отладчик? Где поведение отличается от того, что вы ожидаете? – David

+0

@David, если я вхожу в папку, содержащую вложенные папки и файлы, которые она работает. Но если папка не содержит вложенных папок или не содержит файлов, то она просто выходит из попытки, но не переходит к catch – maor

+0

Если она работает, то что проблема? – David

ответ

0

Добавить Console.ReadKey(); в конце вашего основного метода. Таким образом, приложение не будет закрываться после выполнения.

+0

Я использую ctrl + f9 [в VS] – maor

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