Мне нужно подсчитать количество файлов, удаленных в этой рекурсивной функции. Поскольку он рекурсивный, я не могу использовать операторы if
, а C# не поддерживает глобальные переменные. Любые альтернативы?Счетчик внутри рекурсивной функции
static void DirSearch(string path)
{
try
{
foreach (string dirPath in Directory.GetDirectories(path))
{
foreach (string filePath in Directory.GetFiles(dirPath))
{
string filename = Path.GetFileName(filePath);
if (filename.Equals("desktop.txt"))
{
File.Delete(filePath);
//count++
}
Console.WriteLine(filePath); // print files
}
Console.WriteLine(dirPath); // print directories
DirSearch(dirPath);
}
}
catch (System.Exception excpt)
{
Console.WriteLine(excpt.Message);
}
}
, конечно, C# поддерживает глобальные переменные. где ты понял, что это не так ?! также, когда-либо думал о передаче дополнительного параметра, чтобы сохранить количество удаленных файлов? добавьте дополнительный параметр в свой метод для счетчика. –
@Ahmedilyas Технически это не все они члены того или иного типа. – Lloyd
Как в стороне, я бы переименовал функцию. Поиск подразумевает, что он будет пересекать источник данных и возвращать информацию об этом, но функция удаляет все файлы desktop.txt. Вероятно, также стоит добавить параметр для имени файла, а не жестко-кодировать его на desktop.txt. –