【发布时间】:2013-11-11 18:41:36
【问题描述】:
我需要计算这个递归函数中删除的文件数。由于它是递归的,我不能使用 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 从技术上讲,他们并非都是某种类型的成员。
-
顺便说一句,我会重命名该函数。搜索意味着它将遍历数据源并返回有关它的信息,但该函数正在删除所有 desktop.txt 文件。可能还值得为文件名添加一个参数,而不是将其硬编码到 desktop.txt。
-
@DanLyons:同意!这段代码只是为了说明问题
标签: c# recursion counter delete-file