c# - 随机重命名文件方法
问题描述
我正在使用以下代码随机重命名文件:
File.Move
(@"C:\Users\Desktop\Rename\file.txt", @"C:\Users\Desktop\Rename\file"
+ Helpers_Generic.GenerateRandomInt(10, 1000, driver).ToString() + ".txt");
它运行良好,但我想把它放在一个易于使用的方法中:
public static void RenameFile(string SourceFileName, string destFileName)
{
string randFileExten = GenerateRandomInt(100, 10000).ToString();
File.Move(SourceFileName, destFileName + randFileExten);
}
这不能很好地工作,因为随机字符串出现在文件名的末尾。这里需要做什么?谢谢。
解决方案
根据这个问题,你问这个:
public static void RenameFile(string SourceFileName, string destFileName)
{
var randFileExten = GenerateRandomInt(100, 10000);
string ext = Path.GetExtension(destFileName);
string file = Path.GetFileNameWithoutExtension(destFileName);
string folder = Path.GetDirectoryName(destFileName);
File.Move(SourceFileName, Path.Combine(folder, $"{file}{randFileExten}{ext}"));
}
但是由于您很可能希望目标文件名与源文件名匹配(除了唯一性),我认为我们可以做得更好:
public static void RenameFile(string SourceFileName, string destFolderPath)
{
var randFileExten = GenerateRandomInt(100, 10000);
string ext = Path.GetExtension(sourceFileName);
string file = Path.GetFileNameWithoutExtension(sourceFileName);
File.Move(SourceFileName, Path.Combine(destFolderPath, $"{file}{randFileExten}{ext}"));
}
请注意,第二个参数的名称不同,匹配的方法也不同。
我们还可以轻松地为目标文件夹相同的情况提供重载:
public static void RenameFile(string SourceFileName)
{
string folder = Path.GetDirectoryName(SourceFileName);
RenameFile(SourceFileName, folder);
}
推荐阅读
- javascript - 如何在引导程序 4 上进行响应式布局
- linux - 未找到 Bash 事件
- go - 有没有办法将地图附加到切片?
- python - 如何 Py2app DATA_FILES?
- mysql - Mysql - 在所有出现#字符之前删除数字
- apache - Apache2 通过添加标头来修改从 CIFS 安装的存储库下载的文件。文件已损坏
- amazon-web-services - 使用 SSL 将 Spring Boot 部署到 AWS EB
- vb.net - vb.net 排序列表视图后跟着色交替行不起作用
- r - 按列和行合并多个数据框
- javascript - 通过 WordPress REST API 循环浏览帖子类别 - React