如何以System.IO跨平台方式处理类中的文件名,以使其在Windows和Linux上都能正常工作?
System.IO
例如,我编写了在Windows上可以完美运行的代码,但是在Ubuntu Linux上却没有创建文件:
var tempFilename = $@"..\Data\uploads\{filename}"; using (FileStream fs = System.IO.File.Create(tempFilename)) { file.CopyTo(fs); fs.Flush(); }
Windows使用反斜杠。Linux使用Slash。Path.Combine设置正确的符号: Path.Combine方法-MSDN