2017-03-24 10 views
2

私は別のフォルダにファイルの数をファイルに書き込むことができるメソッドを構築しようとしています。私はすでにそれを得たが、それは動作しません私にエラーを与えるので:Cのパスの一部を見つけることができませんでした

Could not find a part of the path ' C:\Users\Administrator\Desktop...\bin\release\%USERPROFILE%\AppData\Local_logC'

これは私のコードです:

private static int GetCountGFiles(string dirname) 
{ 
    int fileCount = 0; 
    dirname = dirname.TrimEnd(new char[] { '\\' }) + @"\"; 

    var fixedDirname = Environment.ExpandEnvironmentVariables(dirname); 

    fileCount += System.IO.Directory.GetFiles(fixedDirname).Length; 

    string[] all_subdirs = System.IO.Directory.GetDirectories(dirname); 

    foreach (string dir in all_subdirs) 
     fileCount += GetCountGFiles(dirname); 

    string data = string.Format("LogReg.txt"); 

    System.IO.Directory.CreateDirectory(filePath); 
    var fileandpath = filePath + data; 

    using (StreamWriter writer = File.AppendText(fileandpath)) 
    { 
     writer.WriteLine("[" + DateTime.Now + "]" + " - " + "Nº de Records: (" + fileCount.ToString() + ")"); 
    } 

    return fileCount; 
} 

そして私はこのようなメソッドを呼び出す:

GetCountGFiles(@"%USERPROFILE%\AppData\Local\Cargas - Amostras\_logsC\"); 

私は何をすべきか?

答えて

5

メソッドに渡す前に、あなたの入力文字列にEnvironment.ExpandEnvironmentVariables、 を使用する必要があります。 Environment.ExpandEnvironmentVariablesで手動で行う必要があります。たとえば:

var fixedDirname = Environment.ExpandEnvironmentVariables(dirname); 

は今、あなたはこれを行うことができます。

fileCount += System.IO.Directory.GetFiles(fixedDirname).Length; 

(PS stringToString()を使用する必要はありません)あなたはupvoteを持つことができ

+0

まずはお返事ありがとうございます。投稿を編集しましたが、まだエラーが表示されます。メソッドを呼び出すときにパスを "C:¥¥Users¥Administrator¥AppData¥Local¥_logsC"に変更するとエラーになりません。 – RekcsGaming

+0

'dirname'が使用されている場所をすべて更新する必要がありますが、それでも2か所で使用します。 – DavidG

+0

ありがとうございました。私はそれで解決することができました! – RekcsGaming

2

"%USERPROFILE%"部分は、環境変数のプレースホルダです。ファイルAPIはそれをどのように処理するのか分かりません。

あなたは自動的にあなたがそれに渡す環境変数が何であるかを把握しませんDirectory.GetFilesDirectory.GetDirectoriesなどのDirectory.GetFiles

+0

は、あなたにおめでとうを30Kを作ることを:) – DavidG

+0

@DavidGありがとう(返信させてください) –

+0

実際に私の投稿を変更して更新しました – RekcsGaming

関連する問題