【发布时间】:2018-11-12 01:48:07
【问题描述】:
我正在开发一个功能类似于 MS-DOS 命令“cd”的程序。用户在程序提示中键入“cd..”,然后使用 Stringbuilder 删除代表用户当前目录的字符。它的功能如下:
Prompt> cd..
在代码文件中声明了一个 Stringbuilder 实例:
Stringbuilder builder = new Stringbuilder(@"E:\Folder");
在用户键入“cd..”并按 Enter 后,程序将删除 Stringbuilder 值末尾的目录,最终结果如下:
Stringbuilder builder = new Stringbuilder(@"E:\");
我不确定我该如何做到这一点,或者是否有可能做到。我想我可以尝试builder.Length - Directory.Length 来获取目录名称的长度,然后使用builder.Remove(int StartIndex, int length),但我不知道如何实现。
我可能使用的另一件事是使用builder.ToString() 并将其拆分,使用反斜杠作为分隔符。
有什么建议吗?
【问题讨论】:
-
你为什么要使用
StringBuilder?Substring和LastIndexOf不是更容易吗? -
你可以使用:'Path.GetDirectory'。
-
使用
Path方法构建文件路径,而不是字符串连接。路径构造规则are more complicated than you realize. -
出于兼容性原因,我尽量不使用
LastIndexOf -
LastIndexOf(char) 在 C# 可以运行的任何地方运行。自 1.1 以来,它就是 .net 框架的一部分。你在说什么兼容性?
标签: c# console stringbuilder