【问题标题】:How to extract file name from file path name?如何从文件路径名中提取文件名?
【发布时间】:2024-05-22 22:50:02
【问题描述】:

我需要将所有文件从源文件夹移动到目标文件夹。如何轻松从文件路径名中提取文件名?

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);
}

【问题讨论】:

    标签: c# .net file-io


    【解决方案1】:

    尝试以下方法:

    string newPathForFile = Path.Combine(newPath, Path.GetFileName(filePath));
    

    【讨论】:

    • 谢谢,我喜欢这个网站)) 1 分钟得到答案。
    • 不客气。无论如何都没有更好的事情可做(你知道:工作)。
    • 很多人看到你的问题:),集体智慧
    • 我使用了GetFileNameWithoutExtension()。 +1
    【解决方案2】:
    Path.GetFileName(filePath)
    

    【讨论】:

      【解决方案3】:

      使用 DirectoryInfo 和 Fileinfo 代替 File 和 Directory,它们提供了更高级的功能。

      DirectoryInfo di = 
          new DirectoryInfo("Path");
      FileInfo[] files = 
          di.GetFiles("*.*", SearchOption.AllDirectories);
      
      foreach (FileInfo f in files)
          f.MoveTo("newPath");
      

      【讨论】:

        【解决方案4】:

        您可能想尝试 FileInfo.MoveTo 方法(以下链接中的代码示例):

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

        【讨论】:

          【解决方案5】:

          你可以这样做:

          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);
          }
          

          【讨论】: