2015-04-23 2 views
-2

вот код для отображения файлов, которые у меня есть в каталоге, затем пользователь может ввести имя файла, чтобы открыть файл.C# Список файлов без скрытых файлов (опция с опцией включения)

public static void openFile() 
     { 
      // List files in FormatedDocuments directory 
      String[] showFiles = Directory.GetFiles("FormatedDocuments"); 

      int filesList = showFiles.GetUpperBound (0) + 1; 
      const String folderToOpen = @"FormatedDocuments/"; 

      Console.WriteLine ("Here is the list of files:"); 
      for (int i = 0; i < filesList; i++) { 
       Console.WriteLine ("\tFile : " + Path.GetFileName (showFiles [i])); 
      } 

      // When listing is finished, ask the user to select the file he want to open 
      Console.WriteLine (@"Type the filename (With extension) you want to open:"); 
      String userChoice = folderToOpen + Console.ReadLine(); 
      Process.Start (userChoice); // Loading with default application regarding the file extension 

     } 

Мои вопросы:

  1. Как только список видимых файлов в выбранной директории? [DONE]

  2. Как вернуть в консоли число перед каждым файлом и попросить пользователя ввести этот номер вместо полного имени файла? [Ожидание предложение]

Я новичок и попытаться узнать сам, не слишком «эксперт» в вашем решении, пожалуйста, я знаю, что мой текущий код не оптимизирован, я пытаюсь это сделать шаг за шагом, но я принимаю вашу помощь по поводу этого кода :)

Благодарим вас за ответы.

ответ

2

Я нашел this:

Это должно работать для вас:

DirectoryInfo directory = new DirectoryInfo(@"C:\temp"); 
FileInfo[] files = directory.GetFiles(); 

var filtered = files.Select(f => f) 
        .Where(f => (f.Attributes & FileAttributes.Hidden) == 0); 

foreach (var f in filtered) { 
    Debug.WriteLine(f); 
} 
+0

Привет, я адаптировал этот код на мой код, но это возможно, чтобы добавить номер в переднем каждой строки и введите этот номер, чтобы открыть указанный файл, а не ввести полное имя файла? Спасибо. –

+0

Уверенный, вы можете просто сделать int над циклом foreach и после debug.writeline (yourvariablename ++), а затем изменить debug.writeline в debug.writeline (yourvariablename + f) – Thealon

+0

Я попробовал несколько кодов, но я не могу использовать листинг кода и вернуть число перед каждым указанным файлом плюс использовать этот номер для вызова process.start, связанного с файлом. –

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