Создание файла путем чтения filepath из appsettings.json автоматически добавляет корневой каталог моего проекта в путь - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь регистрировать исключения из моего API ASP.NET Core 2.2 с помощью специального промежуточного программного обеспечения.В промежуточном программном обеспечении я читаю путь к журналу из appsettings.json

Я читаю этот раздел «ExceptionLogPath» из appsettings.Developmnet.json и выполняю следующие операции

var dirPath = _config.GetSection("ExceptionLogPath").Value;

            var filename = $"ErrorLog_{DateTime.Now.ToString("yyyyMMdd")}.txt";

            String fullpath = Path.Combine(dirPath, filename);

            if (!File.Exists(fullpath))
            {
                try
                {

                    File.Create(fullpath).Close();
                }
                catch (Exception exx)
                {
                    throw exx;
                }
}

Переменная fullPathимеет точный путь, прочитанный из конфигурации.

Но File.Create(fullPath) вызывает исключение, поскольку полный путь добавляет относительный путь моего проекта в качестве префикса во время выполнения!Следовательно, система не может найти путь для создания файла !!

Ниже приведены мои appsettings.Development.json

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  },
  "ExceptionLogPath": "‪C:\\ExceptionLogs"
}

Проблема в том, что это происходит только в моем проекте,Тот же проект, когда мой коллега запускает на своем ПК, он может создать файл по указанному пути.

Я хочу знать, почему корневой каталог проекта добавляется, когда я читаю путь из appsettings.json.Я могу создать файл с жестко закодированными значениями пути.Сбой только при чтении из appsettings.json

EDIT При попытке создать файл по указанному пути я получаю следующее исключение:

The filename, directory name, or volume label syntax is incorrect : 'E:\Dev\Registry.API\\‪C:\ExceptionLogs\ErrorLog_20190926.txt'

Как видите, первая часть пути к файлу имеет префикс с корневым путем моего проекта!

...