找到lastindexof无法在文件路径字符串中工作

时间:2018-01-20 18:58:30

标签: c#

我试图从下面的字符串中找到文件名的起点。

我没有收到任何错误,但也没有设置_lastSlash。有谁知道为什么最后一行不起作用。

 line = Test\Folder\Machine_Initialization.txt

 using (StreamReader stream = new StreamReader(_fileList))
 {
    string line;
    int _lastSlash;

    while ((line = stream.ReadLine()) != null)
    {
       _lastSlash = line.LastIndexOf("\\");
    }

我编辑了这个问题。我之前有一个_fileName = Path.GetFileName(行),但它没有工作,所以我把它解决了。

如果在_lastSlash = line.LastIndexOf(“\”)之后单步执行调试器,则会看到“_lastSlash当前上下文中不存在名称'_lastSlash'”

2 个答案:

答案 0 :(得分:1)

使用静态System.IO.Path Class进行文件名操作。

string dir = Path.GetDirectoryName(myPath);
string file = Path.GetFileName(myPath);

还有方法Path.GetFileNameWithoutExtension(...)Path.GetExtension(...)以及组合部分的方法:Path.Combine(dir, filename)等等。

答案 1 :(得分:0)

Path.GetFileName(line)不起作用的原因是因为您没有使用正确的转义序列。

请尝试其中任何一项以获得所需的结果。

line = @"Test\Folder\Machine_Initialization.txt"

line = "Test\\Folder\\Machine_Initialization.txt"