如何在for-each循环中按顺序重命名每个文件

时间:2017-07-13 11:52:17

标签: c# .net foreach

我试图按顺序依次命名文件夹中的每个文件。 (file1,file2,file3 ... file99) 我的下面的代码是用下一个文件替换每个文件,因为它们都被命名为相同的东西。

这是我到目前为止所做的:

string pathToFiles = sourcePath.Text
string destinationPath = destPath.Text + "\\" + FileNameTextBox.Text

DirectoryInfo dirInfo = new DirectoryInfo(pathToFiles);

foreach (var file in dirInfo.GetFiles())
{
    //Write the bytes of file to the destination path
    File.WriteAllBytes(@destinationPath, fileToWrite);
}
MessageBox.Show("Process completed", "Completed");

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

如果您只想重命名文件,可以执行此类操作

var i = 1;
foreach (var file in new DirectoryInfo(pathToFiles).EnumerateFiles())
{
    File.Move(file.FullName, Path.Combine(file.DirectoryName, "file" + i++ + file.Extension));
}

<强>更新

以下是使用WriteAllBytes的示例:

var fileNameWithOutExtension = Path.GetFileNameWithoutExtension(FileNameTextBox.Text);
var fileExtension = Path.GetExtension(FileNameTextBox.Text);

int i = 0;
foreach (var file in new DirectoryInfo(pathToFiles).EnumerateFiles())
{
    var filepath = Path.Combine(Path.GetDirectoryName(destPath.Text), fileNameWithOutExtension + i++ + fileExtension);
    //Write the bytes of file to the destination path
    File.WriteAllBytes(filepath, File.ReadAllBytes(file.FullName));
}