2

以下のステートメントが実行fileNameArrayEditedされていません。"\\windows"if

問題は他の場所にあると考えています。問題が見つかったら、機能するはずのコードが戻ってくるはずです...ありがとう!

if (fileNameArrayEdited.StartsWith("\\"))
{
    specifiedDirCount = specifiedDirCount + 1;
}

                // Put all file names in root directory into array.
            string[] fileNameArray = Directory.GetFiles(@specifiedDir);
            int specifiedDirCount = specifiedDir.Count();
            string fileNameArrayEdited = specifiedDir.Remove(0, specifiedDirCount);
            Console.WriteLine(specifiedDir.Remove(0, specifiedDirCount));
            if (fileNameArrayEdited.StartsWith(@"\\"))
            {
                specifiedDirCount = specifiedDirCount + 1;
                Console.ReadLine();
4

2 に答える 2

1

'@'ちょうど 2 つのスラッシュを検索する場合は、文字列の先頭で使用します

if (fileNameArrayEdited.StartsWith(@"\\"))
{
  specifiedDirCount = specifiedDirCount + 1;
}

それらはそのままの文字列と呼ばれ、エスケープ文字を無視しています

しかし、ここであなたの1つのスラッシュはエスケープ文字だと思います

"\\windows"

したがって、次のように 1 つのスラッシュを検索する必要があります。

if (fileNameArrayEdited.StartsWith(@"\"))
{
  specifiedDirCount = specifiedDirCount + 1;
}
于 2014-01-06T14:23:03.073 に答える
0

書くとき

    string s1 = "\\" ; 
    // actual value stored in  s1 is "\"
    string s2 = @"\\" ; 
    // actual value stored in  s2 is "\\"

2 番目のタイプのstring(s) は、「verbatim」文字列と呼ばれます。

于 2014-01-06T14:27:09.967 に答える