为什么Path.Combine没有组合路径和文件?

Dan*_*est 1 c# winforms

我有这个代码:

string log_file_name = @"\logger.txt";
            string logger_file_to_read = Path.GetDirectoryName(Application.LocalUserAppDataPath) + @"\log";
            string LoggerFile = Path.Combine(logger_file_to_read, log_file_name);
Run Code Online (Sandbox Code Playgroud)

我使用断点,我看到:logger_file_to_read包含:

C:\ Users\bout0_000\AppData\Local\Diagnostic_Tool_Blue_Screen\Diagnostic Tool Blue Screen\log

而log_file_name包含:

\ logger.txt

但后来我发现LoggerFile只包含文件名:\ logger.txt没有目录.

这是什么?

Mik*_*ray 7

它就在文档中:

如果path2不包含根(例如,如果path2不以分隔符或驱动器规范开头),则结果是两个路径的串联,以及插入的分隔符.如果path2包含根,则返回path2.

  • 所以OP应该设置`log_file_name ="logger.txt";`不带`\` (3认同)