как получить только имя файла без пути к файлу? - PullRequest
13 голосов
/ 05 октября 2011

у меня есть этот код:

openFileDialog1.Filter = "csv files (*.dbf)|*.dbf";
openFileDialog1.FilterIndex = 1;
openFileDialog1.RestoreDirectory = true;
openFileDialog1.FileName = "";

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
   dbf_File = openFileDialog1.FileName;
}

в dbf_File я получаю все путь и имя файла (c:\MyDir\MyFile.dbf)

мне нужно только имя - MyFile.dbf

Ответы [ 6 ]

24 голосов
/ 05 октября 2011

Только имя файла (с расширением):

dbf_File = System.IO.Path.GetFileName(dbf_File);

Только содержащий каталог:

string dbf_Path = System.IO.Path.GetDirectoryName(dbf_File);
8 голосов
/ 05 октября 2011

Path.GetFilenameWithoutExtension - без расширения

Path.GetFilename - с расширением

1 голос
/ 12 мая 2015

openFileDialog1.SafeFileName получит MyFile.dbf

1 голос
/ 05 октября 2011

Использовать Path.GetFileName

http://msdn.microsoft.com/en-us/library/system.io.path.getfilename.aspx

Если вы просто хотели получить имя файла без расширения, как вы сказали в заголовке (но тогда казалось, что вам не нужно в вашем реальном сообщении), вы можете использовать Path.GetFileNameWithoutExtension.

1 голос
/ 05 октября 2011

Я думаю, что вы хотите Path.GetFileName, что возвращает:

Символы после последнего символа каталога в пути.Если последний символ пути является символом каталога или разделителя томов, этот метод возвращает String.Empty.

(Звучит так, как если бы вы противоречили вашему названию, вы делаете хотите файлрасширение - вам не нужен путь к каталогу, содержащему файл.)

0 голосов
/ 05 октября 2011

dbf_File = path.split ('\'). GetValue (path.split ('\'). Lenth-1);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...