一尘不染

.NET Core中的跨平台文件名处理

linux

如何以System.IO跨平台方式处理类中的文件名,以使其在Windows和Linux上都能正常工作?

例如,我编写了在Windows上可以完美运行的代码,但是在Ubuntu Linux上却没有创建文件:

var tempFilename = $@"..\Data\uploads\{filename}";
using (FileStream fs = System.IO.File.Create(tempFilename))
{
    file.CopyTo(fs);
    fs.Flush();                    
}

阅读 345

收藏
2020-06-07

共1个答案

一尘不染

Windows使用反斜杠。Linux使用Slash。Path.Combine设置正确的符号:
Path.Combine方法-MSDN

2020-06-07