c# - 如果文件名前缀则跳过,如果不添加前缀
问题描述
我想检查文件名是否包含prefix
,如果是,如果不添加则跳过prefix
它。所以代码应该:
- 浏览文件夹中的所有文件
- 检查每个文件名
- 如果文件名以( )开头
prefix
"Some prefix ...."
- 跳过它
- 如果文件名不以
prefix
("Some prefix ...."
)开头 - 在现有文件名前添加
prefix
( )"Some prefix ...."
我当前的代码能够在文件名之前添加前缀,但无法检测前缀是否已经存在。如何添加这种功能?
当前代码:
string prefix = "Some prefix ";
var files = Directory.GetFiles(@"C:\temp", "*.pdf");
foreach (var file in files)
{
string newFileName = Path.Combine(
Path.GetDirectoryName(file),
(prefix + Path.GetFileName(file)));
File.Move(file, newFileName);
}
解决方案
您可以借助Linq ( )进行查询Where
using System.Linq;
...
string prefix = "SomePrefix";
...
var filesToMove = Directory
.EnumerateFiles(@"C:\temp", "*.pdf")
.Where(item => !Path
.GetFileNameWithoutExtension(item)
.StartsWith(prefix, StringComparison.OrdinalIgnoreCase))
.ToArray();
foreach(string file in filesToMove)
File.Move(
file,
Path.Combine(Path.GetDirectoryName(file), prefix + Path.GetFileName(file)));
推荐阅读
- python - 我如何理解鼠标按下的时间?
- flutter - 动画小部件对齐
- android - Android GPS 最后知道位置 null
- http - DioError [DioErrorType.RESPONSE]: Http 状态错误 [405] [已解决]
- c - 将子字符串复制到字符串
- c - 寻找好的算法在给定的时间运行特定的代码。(Arduino C 程序)
- mysql - Why are they showing syntax error for the given query?
- python - 单击提交后如何将我的 Kuthi.py 文件与我的 .xml 文件链接?
- keras - 在 Keras 中绘制神经网络图
- xml - 解析 Edimax 智能插头 SP-2101W V2 XML 输出