如何在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';
您可以使用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
希望这对你有帮助!