gpt4 book ai didi

c# - 递归函数中的计数器

转载 作者:太空宇宙 更新时间:2023-11-03 17:10:22 26 4
gpt4 key购买 nike

我需要计算在此递归函数中删除的文件数。因为它是递归的,所以我不能使用 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);
}
}

最佳答案

一种方法是传入一些内容以供其计入。我会使用 ref 来做到这一点,例如:

static void DirSearch(string path, ref int count)
{
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,ref count);
}
}
catch (System.Exception excpt)
{
Console.WriteLine(excpt.Message);
}
}

然后调用它:

int count = 0;

DirSearch(@"C:\SomePath",ref count);

然后您可以正常使用 count,就像您在代码中注释掉的那样。

关于c# - 递归函数中的计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19913471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com