将 @ 符号用于目录,因此不需要两个反斜杠

本文关键字:两个 不需要 用于 符号 | 更新日期: 2023-09-27 18:33:24

这看起来很简单,但经过研究,我无法找到如何在目录中使用 @ 符号来防止它必须是反斜杠。

一个例子是

DirectoryInfo folderInfo = new DirectoryInfo(@"C:'");

但是在我的应用程序中,目录将是动态的,所以我无法执行此操作:

DirectoryInfo folderInfo = new DirectoryInfo(@Globals.directoryRoute);

所以我想知道将@符号放在字符串之前的正确方法是什么。

Globals.directoryRoute设置为C:'但用户可以更改此输入,因此我希望不必解析每个双反斜杠,我可以使用它来制作它,因此只需要一个反斜杠。

这是一种有效的方法,还是我应该解析一下每秒的反斜杠?

将 @ 符号用于目录,因此不需要两个反斜杠

@ 前缀是一种工具,用于告诉编译器不要将反斜杠作为以下字符串中的转义字符。如果在运行时输入字符串,则无需担心。因此,您可以按原样使用Globals.directoryRoute的内容。

只有代码中的字符串文本才需要双反斜杠。在内存中,字符串中仅存储一个反斜杠,因此在处理内存中已有的字符串时不需要@符号。同样,用户输入不需要双反斜杠,因为它的解释方式与源代码不同。例如,如果你有一个名为 txtPath 的文本框,用户可以简单地键入 C:'some'path ,而不是像通常在源代码中需要的那样C:''some''path。在代码中读取该文本框的值时,只需使用:

string path = txtPath.Text;这将与您具有以下代码相同:

string path = @"C:'some'path";或者,等效地:
string path = "C:''some''path";