2016-10-21 3 views
-5
string path = "C:\\BSD"; 
string extension = Console.ReadLine(); 
List<string> allExstensions = getAllExtention(); // Is there a method where I get all File Extensions : *.png, *.txt,....... 
if (!allExstensions.Contains(extension)) 
    throw new Exception("The Extension you wrote does not exist!!"); 

foreach (string directory in Directory.GetDirectories(path)) 
{ 
    foreach (string file in Directory.GetFiles(directory,extension)) 
    { 
     Console.WriteLine(file); 
    } 
} 

Есть ли способ проверить, существует ли exfent enterf?Как я могу получить ВСЕ расширения файлов в C#?

+2

Нет, файл может иметь любое произвольное расширение или вообще. Существует понятие «зарегистрированных» расширений, но вам не нужно регистрировать расширение файла, чтобы использовать его. – SledgeHammer

+0

Чего вы хотите достичь? Какие расширения вы считаете действительными? Ваш вопрос не совсем ясен. – HimBromBeere

ответ

3

Файл может иметь любое расширение, которое он хочет. Это может быть любая последовательность символов любой длины. Поскольку эта последовательность бесконечна, нет способа разместить их в списке.

Если вы хотите узнать, есть ли в интересующем вас каталоге какие-либо файлы с заданным расширением, вы можете перечислить все файлы в каталоге и поместить все их расширения в набор.

0

Вы можете попробовать это с помощью Linq:

string path = "C:\\BSD"; 
    string extension = Console.ReadLine(); 
    int count = 0; 

    foreach (string file in Directory.GetFiles(path, "*.*",SearchOption.AllDirectories).Where(x => x.EndsWith(extension))) 
    { 
     Console.WriteLine(file); 
     count++; 
    } 

    if (count == 0) 
     throw new Exception("The Extension you wrote does not exist!!"); 
Смежные вопросы