问题描述
stringstrpath=checkedListBox1.GetItemText(checkedListBox1.Items[j]);stringstrfile=Path.GetFileName(strpath);strpath返回的是路径名+文件名,如:D:ABCab.txt现在想要获取文件名ab.txt,怎么得到?用stringstrfile=Path.GetFileName(strpath);提示非法路径
解决方案
解决方案二:
你这个问题提的,让人实在是难以回答。随便测试一下就知道结果stringstrpath="D:\ABC\ab.txt";stringstrfile=Path.GetFileName(strpath);
我只能说,在你的程序中,Path不是Path,是其它的自定义类型。
解决方案三:
你应该在你的stringstrfile=Path.GetFileName(strpath);这行抛出异常之后,调试时,把实际的strpath值贴出来(而不是用你的举例的方式)。如果怕转义符干扰阅读,那么就在strpath这个变量指针“右边”点击那个“黑三角”,然后选择“文本可视化工具”。然后贴出真实的值出来。
解决方案四:
Console.WriteLine(Path.GetFileName(@"D:ABCab.txt"));Console.WriteLine(Path.GetFileName(@"D:ABCab.txt".Replace(@"","//")));
两个都出了ab.txt,所以不知道究竟你是怎么写的
解决方案五:
stringstrpath=checkedListBox1.GetItemText(checkedListBox1.Items[j]);strpath变量值是D:ABCab.txt,但是是从checkedListBox1控件传递过来的,如果可以直接写:stringstrpath="D:\ABCab.txt",我知道是没问题的,我用stringstrfile=Path.GetFileName(strpath.Replace(@"","//"));依然提示非法字符啊
解决方案六:
笔误:stringstrpath="D:\ABC\ab.txt"
解决方案七:
我觉得二楼,三楼没理解真实的需求,strpath来自于控件值,而不是一个具体的值
解决方案八:
stringstrpath=checkedListBox1.GetItemText(checkedListBox1.Items[j]);MessageBox.Show(strpath);截个图看看
解决方案九:
个人也觉得是你的strpath有问题
解决方案十:
引用4楼zwliu的回复:
stringstrpath=checkedListBox1.GetItemText(checkedListBox1.Items[j]);strpath变量值是D:ABCab.txt,但是是从checkedListBox1控件传递过来的,如果可以直接写:stringstrpath="D:\ABCab.txt",我知道是没问题的,我用stringstrfile=Path.GetFileName(strpath.Replace(@"","//"));依然提示非法字符啊
所以说,然你在贴出调试画面啊。你如果仅仅“举例说”是那个值,就跟直接这个赋值表达式一样了。如果你拒绝调试就没法在跟你说什么了。
解决方案十一:
上面甚至已经说“如果怕转义符干扰阅读,那么就选择‘文本可视化工具’来查看”了,这就是很具体的调试方法啊。
解决方案十二:
newFileInfo(strFilePathName).Name
解决方案十三:
断点调试,贴出你的strpath的具体值编译器说它不是路径,那么它就不是路径编译器不会骗人,只有你自己会骗自己你认为它是个路径,那么把它贴出来看,它到底是什么