public String GetDirectory(String Path)
{
Console.WriteLine("Directorul: ");
var start = Path.IndexOf(":") + 6;
var match2 = Path.Substring(start, Path.IndexOf(".") - start);
return Path;
}
我需要获取此字符串中2个字符之间的路径字符串: “C:\文件\ TEXT.TXT”
我希望它在':'和'。'之间显示文字。最后所以:“\ Documents \ Text”
答案 0 :(得分:5)
int start_index = Path.IndexOf(':')+1;
int end_index = Path.LastIndexOf('.');
int length = end_index-start_index;
string directory = Path.Substring(start_index,length);
答案 1 :(得分:2)
Linq总是令人着迷:
string s = string.Join("",
Path.SkipWhile(p => p != ':')
.Skip(1)
.TakeWhile(p => p != '.')
);
答案 2 :(得分:2)
您可以使用字符串操作,但您也可以使用System.IO.Path
函数 - 在我个人看来 - 更优雅的解决方案:
string path = @"C:\Documents\Text.txt";
string pathRoot = Path.GetPathRoot(path); // pathRoot will be "C:\", for example
string result = Path.GetDirectoryName(path).Substring(pathRoot.Length - 1) +
Path.DirectorySeparatorChar +
Path.GetFileNameWithoutExtension(path);
Console.WriteLine(result);
答案 3 :(得分:0)
你应该返回你的match2而不是路径,因为路径将保留为C:\ Documents \ Text.txt
public String GetDirectory(String Path)
{
Console.WriteLine("Directorul: ");
var start = Path.IndexOf(":") + 6;
var match2 = Path.Substring(start, Path.IndexOf(".") - start);
return match2;
}
答案 4 :(得分:-1)
patch = patch.Substring(patch.IndexOf(':') + 1, patch.IndexOf('.') - 2);