Неожиданные значения с подсчетом символов в строках C# - PullRequest
0 голосов
/ 09 июля 2020

Попытка проанализировать количество символов в именах файлов по сравнению с путями к файлам.

Учитывая, что allfiles - это ВСЕ файлы в каталоге, я получаю некоторые неожиданные результаты. В одном случае file.Length.ToString() = 281, а fileName.Length.ToString() = 288. Как могло получиться, что имя файла содержит больше символов, чем полный путь?

string[] allfiles = Directory.GetFiles(@"directory", "*.*", SearchOption.AllDirectories);


new System.IO.StreamWriter(@"C:\Output.txt"))
        {
            foreach (string file in allfiles)
            {
                string fileName = System.IO.Path.GetFileName(file) + System.IO.Path.GetExtension(file);
                string line = file.Replace(',', '?') + "," + file.Length.ToString() + "," + fileName.Length.ToString()+","+fileName;
                output.WriteLine(line);
            }
        }

1 Ответ

1 голос
/ 09 июля 2020

Думаю, это больше соответствует тому, что вы пытаетесь сделать:

   foreach (string file in allfiles)
   {
       string fileName = System.IO.Path.GetFileName(file);
       string line = file.Replace(',', '?') + ", " + file.Length.ToString() + ", " + fileName.Length.ToString() + "," + fileName;
       output.WriteLine(line);
   }

Добавление дополнительного расширения снижает ваш счет.

Изменить

* 1007 От *

до

string fileName = System.IO.Path.GetFileName(file);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...