2017-03-20 5 views
-1

私はルートフォルダのツリービューを持っています。再帰関数を使用していますが、関数の戻り値に問題があると思っていますすべてのファイル/フォルダ、一部の子ファイル/フォルダが見つかりません:フォルダ内のすべてのディレクトリ/ファイルを取得する

public string DirSearch(string sDir) 
    { 
     string result = ""; 
     string physicalPath = sDir; 
     if (sDir == "") 
     { 
      sDir = "~"; 
      physicalPath = HttpContext.Current.Server.MapPath(sDir); 
     } 
     try 
     { 
      foreach (string d in Directory.GetDirectories(physicalPath)) 
      { 
       result += d; 
       foreach (string f in Directory.GetFiles(d)) 
       { 
        result += f + ","; 
       } 
       result += ";"; 
       DirSearch(d); 
      } 
     } 
     catch (System.Exception excpt) 
     { 

     } 
     return result; 
    } 

ここで何が問題になりますか?関数の戻り値に問題がありますか?

 result += ";"; 
     DirSearch(d); 

+1

あなたは、文字列をどうするかを期待していますか?あなた以外の文字列にDirSearchへの再帰呼び出しを追加していません... – BugFinder

+2

_私はいくつかの子ファイル/フォルダが見つからないと思います_あなたはそう思っていますか、あなたは確信していますか? – Pikoh

+0

問題があるかどうかわからない場合は、テストすることをお勧めします。テストして問題を特定したら、コードをデバッグして問題の原因を突き止める。 – Chris

答えて

2

サブフォルダの検索を行うが、結果に追加していけない、例えば、

 result += ";" + DirSearch(d); 
+1

ユーザー名をチェックアウトします。 ;-) – Chris

+0

はい、多くのおかげで、あなたはreaaaaaaaaaaaaaaaaaaa bugFinderですが –

関連する問題