一、路径问题
1.在平常的WPF(及windows应用软件)开发中,访问文件(懒一点的话)(比如我)通常就直接使用 字符串拼接
举个例子,我们访问软件目录下的\Data\xxx.txt文件:
string path = AppDomain.CurrentDomain.BaseDirectory+"\\Data\\xxx.txt";
在windows上可以完美运行...
如果你将这一习惯带到了linux上,找不到文件还好,就怕...
(瞬间爆炸..)
这是因为:
在Windows中,文件路径是以单反斜杠表示的: \ 例如:C:\xxx.txt
在Linux中,文件路径是以反斜杠表示的:/ 例如:/home/xxx.txt
当你在linux中用\\表示的时候,linux会认为那就是文件名..而且这个文件放在windows找不到也删不了.....(别问我怎么知道的)
所以推荐使用以下方法对接路径字符串:
Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"Data","xxx.txt");
2.如何正确地在Linux上获取一个特殊文件夹(我的文档之类的)
大家都知道 Environment.GetFolderPath 这个方法 但是它在Linux上不是很正常:
MSDN上说:
但是我在deepin linux 上测试的结果并不是这样....
MyDocuments输出了: /root
Personal输出了:/home/twlm(我的用户名)
所以你想要正确地获取“我的文档”文件夹,可以用:
.........