C# 随机重命名文件方法

C# 随机重命名文件方法,c#,C#,我使用以下代码随机重命名文件: File.Move (@"C:\Users\Desktop\Rename\file.txt", @"C:\Users\Desktop\Rename\file" + Helpers_Generic.GenerateRandomInt(10, 1000, driver).ToString() + ".txt"); 它工作得很好,但我想把它放在一个易于使用的方法中: public static voi

我使用以下代码随机重命名文件:

       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}"));
}
但是,由于您很可能希望目标文件名与源文件名匹配,而不是与uniquifier匹配,因此我认为我们可以做得更好:

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

请将提供的参数添加到重命名文件。是吗RenameFile@C:\Users\Desktop\Rename\file.txt,@C:\Users\Desktop\Rename\file`?非常好。谢谢你的回答,乔尔。