从文件路径中提取文件名在C#中如何实现?

3

我看到了几个类似的问题,但是我不知道自己做错了什么。 我有一个列表框,我想要列出所有选定的测试文件,而不是整个路径。使用当前的代码,没有任何文本被输入到列表框中。我做错了什么?

if (cmdBrowse.ShowDialog() == DialogResult.OK)
{
    string testNameShort = Path.GetFileName(listboxTestsToRun.Text.ToString());
    listboxTestsToRun.Items.Add(testNameShort);
}

提前感谢!


cmdBrowse是什么类型的控件? - Steve
文件夹浏览器还是打开文件对话框? - Steve
你调试过了吗?你看到了什么?我认为listboxTestsToRun.Text.ToString()并不是你想象中的那样。 - Bit
如果我没错的话,你是在检索 listboxTestsToRun.Text 列表框的值,使用 Path 类提取文件名并将其插入到同一列表框中吗?当你调试代码时,listboxTestsToRun 变量上有任何值吗? - HuorSwords
你确定有一个项目被选中了吗?即使有,这段代码也会获取所选项目的文件名部分,并将其添加到列表框项的末尾(仍然保留原始文件名在列表中)。这似乎不是你想要做的事情。 - Matthew Watson
抱歉,这是浏览对话框的标题。OpenFileDialog cmdBrowse = new OpenFileDialog(); cmdBrowse.Title = "将测试添加到测试队列"; cmdBrowse.Filter = ".cmd 文件|*.cmd"; cmdBrowse.InitialDirectory = @"起始路径"; - Joel
3个回答

8

假设cmdBrowse是一个打开文件对话框,您希望用户选择的文件名添加到列表框中。在这种情况下,您可以编写以下代码:

listbox.Items.Add(cmdBrowse.FileName);

if (cmdBrowse.ShowDialog() == DialogResult.OK)
{
   if(cmdBrowse.FileName.Length > 0)
   {
      string testNameShort = Path.GetFileName(cmdBrowse.FileName);
      listboxTestsToRun.Items.Add(testNameShort);
   }
}

完全按照我的要求工作,谢谢!我现在也看到了我在那里做错了。我是从列表框中的内容绘制路径,而不是从对话框中选择的文件。 喜欢这个网站。谢谢Steve! - Joel
е“ҰпјҢеҘҪеҗ§пјҢпјҲеҸ–еҶідәҺOPжғіиҰҒеҒҡд»Җд№ҲпјүеҸҜиғҪOPиҝҳеә”иҜҘж·»еҠ cmdBrowse.CheckFileExists=true; дҪҶжҲ‘дёҚзҹҘйҒ“е®ғжҳҜеҗҰеҝ…йңҖгҖӮ - Steve

1
如果cmdBrowseOpenFileDialog,那么,除非您希望从列表框中获得其他有意义的内容,否则您需要使用用户选择的路径(这就是我猜测您要做的),例如:
var fileName = Path.GetFileName(cmdBrowse.FileName);

1

首先,查看执行Path.GetFileNameWithoutExtension(FilePath)方法的路径,然后将其添加到框中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接