我试图从下面的字符串中找到文件名的起点。
我没有收到任何错误,但也没有设置_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'”
答案 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"