Имеется метод которые получает все диски
public static string GetAllDrives()
{
var builder = new StringBuilder();
try
{
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
builder.AppendLine(d.Name);
}
}
catch (Exception) { }
return builder.ToString();
}
На выходе получаю:
C:\ D:\ E:\
и.т.д диски
По ним я хочу пройтись и искать все файлы которые имеются там для этого я попробовал сделать такой метод поиска:
public static void SearchAllDisk()
{
try
{
foreach (string list in Directory.EnumerateFiles(GetAllDrives(), "*", SearchOption.AllDirectories))
{
Console.WriteLine(list);
}
}
catch (Exception) { }
}
Но после запуска ничего не происходит, я пробовал добавить список в List<string>
но и там тоже ничего не получилось, подскажите как через полученные диски пройтись по всем файлам в папках и подпапках?
Ваша функция GetAllDrives()
возвращает строку, в которой через \r\n
перечислены все диски (что то типа C:\\\r\nD:\\\r\nE:\\\r\n
). И вы эту строку передаете в EnumerateFiles
.
Следовательно сначала вам нужно разделить эту строку на диски:
public static void SearchDirectory(string dir)
{
try
{
foreach (string f in Directory.GetFiles(dir))
{
Console.WriteLine(Path.GetFullPath(f));
}
foreach (string d in Directory.GetDirectories(dir))
{
Console.WriteLine(Path.GetFileName(d));
SearchDirectory(d);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
public static void SearchAllDisk()
{
try
{
string[] separators = new string[] { "\r\n" };
string[] drives = GetAllDrives().Split(separators, StringSplitOptions.None);
foreach (string drive in drives)
{
SearchDirectory(drive);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Так же имейте в виду, что вы можете словить исключение при перечислении файлов одно диска (например, у вас недостаточно прав для просмтора этого файла) и тогда остальные диски не будут проверены. Поэтому лучше try-catch вынести внутри цикла.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Потому что программа успевает завершиться пока задача спит
Взялся изучать С#, хочу сделать парсер с помощью AngleSharp
Нужна ваша помощьМне необходимо передать в unity 2d массив доступный по ссылке: https://api