14

我有一个路径,我想向其中添加一些名为 test 的新子文件夹。请帮我找出如何做到这一点。我的代码是:

string path = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
 Console.WriteLine(path+"\test");

我得到的结果是:“c:\Users\My Name\Pictures est”

请帮我找出正确的方法。

4

6 回答 6

31

不要尝试构建连接字符串的路径名。使用Path.Combine方法

string path = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
Console.WriteLine(Path.Combine(path, "test"));

Path 类包含许多有用的静态方法来处理包含路径、文件名和扩展名的字符串。这个类对于避免许多常见错误非常有用,并且还允许编写代码以获得更好的操作系统之间的可移植性(win 上的“\”,Linux 上的“/”)

Path 类在命名空间中定义System.IO
您需要添加using System.IO;到您的代码

于 2013-06-03T14:48:15.110 回答
20

你需要逃避它。 \t是 Tabs 的转义序列0x09

path + "\\test"

或使用:

path + @"\test"

更好的是,让我们Path.Combine为您完成肮脏的工作:

Path.Combine(path, "test");

Path驻留在System.IO命名空间中。

于 2013-06-03T14:48:48.440 回答
8

有两种选择:

  1. 使用 @ 符号,例如:path + @"\test"
  2. 使用双反斜杠,例如:path + "\\test"
于 2013-06-03T14:49:44.283 回答
6

字符串添加;

add += "\\"; //or :"\\" means backslash
于 2014-01-18T02:57:33.390 回答
3

反斜杠'\'是 C# 中字符串的转义字符。你可以:

  • 采用Path.Combine

    Path.Combine(path, "test");
    
  • 转义转义字符。

    Console.WriteLine(path+"\\test");
    
  • 使用逐字字符串文字。

    Console.WriteLine(path + @"\test");
    
于 2013-06-03T14:52:50.623 回答
1

反斜杠是转义字符,所以使用
Console.WriteLine(path+"\\test");
or
Console.WriteLine(path+@"\test");

于 2016-09-04T20:37:19.480 回答