我无法相信我不得不问这个问题,因为这里有一些简单的问题&然后有那些荒谬的问题.. 无论如何,由于明显的答案(不是我正在寻找的答案),我实际上无法找到答案。
我有这样的代码:
OpenFileDialog ofd = new OpenFileDialog();
if(ofd.ShowDialog() == DialogResult.OK)
{
textBox1.Text = ofd.FileName;
}
这很好用,因为我有一个方法,当然,打开我的文件(不同的形式)。 但是,要将此传递给我的其他形式的查看方法,路径(ofd.FileName)必须保持完整。
我的问题或问题是:如何从路径中获取文件的实际名称?
我试过这个:textBox1.Text = ofd.FileName.LastIndexOf("\");
上述尝试在编译器中标记为错误,因为反斜杠被归类为换行符。
那么,如何从路径中获取文件名?例如,假设文件的名称是:List1.text,我希望我的第二个表单textBox1.Text为:List1.text,而不是完整路径。
提前致谢! !
答案 0 :(得分:1)
您可以在Path.GetFileName Method中使用Path Class:
string fileName = @"C:\mydir\myfile.ext";
string path = @"C:\mydir\";
string result;
result = Path.GetFileName(fileName);
Console.WriteLine("GetFileName('{0}') returns '{1}'",
fileName, result);
result = Path.GetFileName(path);
Console.WriteLine("GetFileName('{0}') returns '{1}'",
path, result);
// This code produces output similar to the following:
//
// GetFileName('C:\mydir\myfile.ext') returns 'myfile.ext'
// GetFileName('C:\mydir\') returns ''
如果您想获得扩展程序,可以使用Path.GetExtension Method:
string fileName = @"C:\mydir.old\myfile.ext";
string path = @"C:\mydir.old\";
string extension;
extension = Path.GetExtension(fileName);
Console.WriteLine("GetExtension('{0}') returns '{1}'",
fileName, extension);
extension = Path.GetExtension(path);
Console.WriteLine("GetExtension('{0}') returns '{1}'",
path, extension);
// This code produces output similar to the following:
//
// GetExtension('C:\mydir.old\myfile.ext') returns '.ext'
// GetExtension('C:\mydir.old\') returns ''
答案 1 :(得分:0)
您可以从.net 4.0及更高版本获取OpenFileDialog.SafeFileName或使用:
var onlyFileName = System.IO.Path.GetFileName(ofd.FileName);