.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