在C#中获取文件名的最后一部分

use*_*011 -1 c#

我需要获取最后一部分意味着以下文本的数值(318,319)(会有所不同)

C:\Uploads\X\X-1\37\Misc_318.pdf
C:\Uploads\X\X-1\37\Misc_ 319.pdf
C:\Uploads\X\C-1\37\Misc _  320.pdf
Run Code Online (Sandbox Code Playgroud)

一旦我获得该值,我需要搜索整个文件夹.一旦我找到匹配编号的文件名,我需要删除所有空格并重命名该特定文件夹中的文件

这就是我想要的

  • 首先得到文件的最后一部分(数字可能会有所不同)
  • 根据我在文件夹中搜索的数字来获取所有文件名
  • 一旦我获得所有文件名称检查具有文件名的空格并删除空格.

Eri*_* J. 6

找到号码

如果命名遵循约定SOMEPATH\SomeText_ [Optional spaces] 999.pdf,请尝试

var file = System.IO.Path.GetFileNameWithoutExtension(thePath);
string[] parts = file.split('_');
int number = int.Parse(parts[1]);
Run Code Online (Sandbox Code Playgroud)

当然,请根据需要添加错误检查.您可能要检查,有2份分割后,也许使用int.TryParse()来代替,这取决于你的信心,该文件的名称将遵循这种模式,你的恢复,如果的TryParse()返回false能力.

构造新文件名

有了这个号码,我不完全明白你想做什么.然而,看看Path.Combine()建立一个新的路径,如果这是你需要什么,你可以使用Directory.GetFiles()来搜索特定的文件名,或者匹配模式的文件,在需要的目录.

删除空格

如果您的文件名中包含空格,并且您希望删除所有空格,则可以执行此操作

string newFilename = oldFilename.Replace(" ", "");
Run Code Online (Sandbox Code Playgroud)