C# 如何将旧文件夹复制到新文件夹并重命名新文件夹中的文件

C# 如何将旧文件夹复制到新文件夹并重命名新文件夹中的文件,c#,C#,旧文件夹名为“dat”,并且“dat”文件夹下的所有文件都以文件夹名为前缀,即“dat” 例如: dat/dat_x1.dat dat/dat_b1.dat 等 我想创建一个新文件夹,比如“datNew”,并将“dat”文件夹中的所有文件添加到“datNew”文件夹中。但是,这一次,“datNew”文件夹中的文件前缀采用新文件夹名称“datNew”。然后,它将给出以下内容: datNew/datNew\u xt.dat datNew/datNew\u b1.dat 等 我使用以下COLD进行复制

旧文件夹名为“dat”,并且“dat”文件夹下的所有文件都以文件夹名为前缀,即“dat”

例如:

dat/dat_x1.dat
dat/dat_b1.dat

我想创建一个新文件夹,比如“datNew”,并将“dat”文件夹中的所有文件添加到“datNew”文件夹中。但是,这一次,“datNew”文件夹中的文件前缀采用新文件夹名称“datNew”。然后,它将给出以下内容:

datNew/datNew\u xt.dat
datNew/datNew\u b1.dat

我使用以下COLD进行复制,但无法在文件中搜索前缀并将其替换为新前缀

File.Copy(Path.Combine(dat, fName), Path.Combine(datNew, fName))

如何重命名新文件夹中文件的前缀?

您应该获得一个文件夹对象,然后遍历其中的每个文件对象。对于每个文件,获取旧文件名,然后确定新文件名。仍然在为每一个,从旧复制到新。生成的代码将是:

File.Copy(Path.Combine(dat, fName), Path.Combine(datNew, fNameNew))
要确定新前缀,请执行以下操作:

var newFilename = fName.Replace(dat, datNew);

以下内容将完成此工作:

File.Copy(Path.Combine(dat, fName), Path.Combine(datNew, fName.Replace(dat,dataNew)))

这个简单的修改解决了我的问题

File.Copy(Path.Combine(dat, fName), Path.Combine(datNew, Replace(fName, "old-prefix", "new-prefix")))