如何在c#中处理windows/Linux路径?

本文关键字:Linux 路径 windows 处理 | 更新日期: 2023-09-27 17:51:25

我的目的是让我的应用程序在windows和linux上运行。
应用程序将使用特定的目录结构,例如

appdir/  
      /images
      /sounds

处理windows和linux之间文件(路径)命名差异的好方法是什么?我不想为每个平台编写变量。例如伪代码

if #Win32
  string pathVar = ':c'somepath'somefile.ext';
else 
  string pathVar = '/somepath/somefile.ext';

如何在c#中处理windows/Linux路径?

您可以使用Path.DirectorySeparatorChar常量,它将是'/

或者,使用Path.Combine创建路径,这会自动插入正确的分隔符。

用System.IO.Path.Combine来组成你的路径怎么样?

Windows的例子:

var root = @"C:'Users";
var folder = "myuser";
var file = "text.txt";
var fullFileName = System.IO.Path.Combine(root, folder, file);
//Result: "C:'Users'myuser'text.txt"
Linux的例子:

var root = @"Home/Documents";
var folder = "myuser";
var file = "text.txt";
var fullFileName = System.IO.Path.Combine(root, folder, file);
//Result: "Home/Documents/myuser/text.txt"

如果你使用Mono。在System.IO.Path类中,你会发现:

Path.AltDirectorySeparatorChar
Path.DirectorySeparatorChar

希望这对你有帮助!