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

如何以跨平台的方式处理System.IO类中的文件名,以使其在Windows和Linux上运行?

例如,我编写了可在Windows上完美工作的代码,但它不会在Ubuntu Linux上创建文件:

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

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


您还可以使用Path.DirectorySeparatorChar,如下所示:

 Console.WriteLine("..{0}Data{0}uploads{0}{{filename}}", Path.DirectorySeparatorChar);

参考:MSDN


你可以简单地使用斜杠。 相对路径的工作原理是相同的,绝对路径只能相对于主驱动器的根(因为以“c:”开头的绝对路径不可移植)

链接地址: http://www.djcxy.com/p/54553.html

上一篇: platform file name handling in .NET Core

下一篇: platform library for file system events?