如何在void中返回变量

时间:2018-10-11 17:54:02

标签: c# file 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);

已被触发。

我试图返回它,但是它并没有做任何事情,如何在找到文件后立即设置变量并停止该函数?

2 个答案:

答案 0 :(得分:1)

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

然后,在循环内,找到时返回字符串:

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

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

答案 1 :(得分:-1)

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

<div>
    <div id="dynamiccontent">no no no</div>
</div>
<script>
    document.getElementById("dynamiccontent").innerHTML = "hey hey hey"
</script>

如果您要查找特定文件,请用以下内容替换第一循环

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;
    }