如何以跨平台的方式处理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();                    
}

推荐答案

Windows using Backslash. Linux using Slash. Path.Combine set the right symbol :
Path.Combine Method - MSDN

Linux相关问答推荐

抛出主,即未捕获到SIGSEGV中的异常结果

一个关于Linux中的fork()和物理地址的奇怪问题

Azure Linux B1s VM-Jenkins Sever已安装,但主页未打开

在 bash 脚本中保持两个进程处于活动状态(并在死亡时重生它们)

`__meminit` 在 Linux 内核中意味着什么?

inotifywait 可以说文件在另一个进程可以访问之前已关闭吗?

在 Ubuntu 中,如何设置 Tomcat 9 以使用 Java 17?

sed:用空格替换

中的换行符

从 curl 命令输出中获取值

从 Ansible 中的 shell 命令输出中提取特定数据

如何使用 Bash 读取文件中的倒数第二行?

使用 shell 脚本获取 MAC 地址

Vagrant chicken-and-egg:与 uid = apache 用户共享文件夹

有没有办法在整个项目代码中的某个日期之后找出更改的文件?

Linux 和 I/O 完成端口?

为什么导入 SQL 这么慢?

如何在python中找到文件或目录的所有者

如何搜索文件并将它们压缩到一个 zip 文件中

Linux SCHED_OTHER、SCHED_FIFO 和 SCHED_RR - 区别

如何在 Linux 中将 .so 文件添加到 java.library.path