如何 return 空变量

How to return a variable in a void

我有以下代码:

static void Scan(string path)
    {
        try{
               foreach (var file in Directory.EnumerateFiles(path, "zfsdfsdfsb.txt")){
                  Console.WriteLine("FILE: " + file);   
               }

              foreach (var dir in Directory.EnumerateDirectories(path)){
                  Console.WriteLine("DIRECTORY: " + dir);
                  Scan(dir);
               }
           }
    }

我想停止函数并尽快访问变量

Console.WriteLine("FILE: " + file);

已触发。

我尝试 return 它,但它没有做任何事情,我如何设置一个变量并在找到文件后立即停止该功能?

将您的 void 更改为 string static string Scan(string path).

然后,在你的循环中,return 找到的字符串:

foreach (var file in Directory.EnumerateFiles(path, "zfsdfsdfsb.txt")){
     Console.WriteLine("FILE: " + file);   
     return file;
}

如果未找到任何内容,您还需要 return 在方法末尾添加一个字符串。

如果您正在递归查找与给定模式匹配的文件

static string Scan(string path)
    {
        try{
               foreach (var file in Directory.EnumerateFiles(path, "zfsdfsdfsb.txt")){
                  Console.WriteLine("FILE: " + file);   
                  return file;
               }

              foreach (var dir in Directory.EnumerateDirectories(path)){
                  Console.WriteLine("DIRECTORY: " + dir);
                  var ret = Scan(dir);
                  if(ret != null)
                      return ret;
               }
           }
         return null;
    }

如果您要查找特定文件,请将第一个循环替换为

 var fpath = Path.Combine(path,"zfsdfsdfsb.txt");
   if (File.Exists(fpath))
         return fpath;