更新 我有我的程序读取一个json文件,并在它读取后从文件中吐出几行。其中一个是" org.apache.commons:commons-compress:1.8.1"。我需要一种方法来取代所有的"。"在"之前:"用" \"以及替换所有":"用" \"这应该创建一个看起来像这样的东西" org \ apache \ commons \ commons-compress \ 1.8.1"然后将用于创建目录。例如:
Directory.CreateDirectory("org\\apache\\commons\\commons-compress\\1.8.1");
原始 我有我的程序读取一个json文件,并在它读取后从文件中吐出几行。其中一个是org.apache.commons:commons-compress:1.8.1这个文本然后用于创建文件夹系统。但是,在尝试将给定文本更改为要创建的文件夹时出现问题,最终产品应为" org \ apache \ commons \ commons-compress \ 1.8.1"。但从我所看到的,你只能改变所有的"。"所以我正在寻找的只是改变"。"在"之前:"然后改变":"到" \"同样。 如果您需要我澄清任何问题,请提前感谢您的帮助。
答案 0 :(得分:2)
这是一种满足您需求的方式:
string source = @"org.apache.commons:commons-compress:1.8.1";
int lastColon = source.LastIndexOf(':') + 1;
string path = source.Substring(0, lastColon).Replace('.', '\\').Replace(':', '\\');
path += source.Substring(lastColon);
Console.WriteLine(path);
它查找最后一个冒号的位置,将所需的字符替换为该点(+1表示包含此冒号),然后只添加其余字符。
如果您不想对\
进行硬编码,则可以改为使用System.IO.Path.DirectorySeparatorChar
。