Как извлечь имя файла из имени пути файла? - PullRequest
26 голосов
/ 21 октября 2010

Мне нужно переместить все файлы из исходной папки в папку назначения.Как я могу легко извлечь имя файла из пути к файлу?

string newPath = "C:\\NewPath";

string[] filePaths = Directory.GetFiles(_configSection.ImportFilePath);
foreach (string filePath in filePaths)
{
  // extract file name and add new path 
  File.Delete(filePath);
}

Ответы [ 5 ]

50 голосов
/ 21 октября 2010

Попробуйте следующее:

string newPathForFile = Path.Combine(newPath, Path.GetFileName(filePath));
47 голосов
/ 21 октября 2010
Path.GetFileName(filePath)
10 голосов
/ 21 октября 2010

используют DirectoryInfo и Fileinfo вместо File и Directory, они предоставляют более продвинутые функции.

DirectoryInfo di = 
    new DirectoryInfo("Path");
FileInfo[] files = 
    di.GetFiles("*.*", SearchOption.AllDirectories);

foreach (FileInfo f in files)
    f.MoveTo("newPath");
5 голосов
/ 21 октября 2010

Возможно, вы захотите попробовать метод FileInfo.MoveTo (пример кода по следующей ссылке):

http://msdn.microsoft.com/en-us/library/system.io.fileinfo.moveto.aspx

4 голосов
/ 21 октября 2010

Вы можете сделать это так:

string newPath = "C:\\NewPath"; 
string[] filePaths = Directory.GetFiles(_configSection.ImportFilePath);  
foreach (string filePath in filePaths)  
{  
   string newFilePath = Path.Combine(newPath, Path.GetFileName(filePath);
   File.Move(filePath, newFilePath);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...