如何在一个文件夹中一个接一个地获取文件名,并在.txt文件中使用它们
本文关键字:一个 文件 txt 并在 文件夹 获取 文件名 | 更新日期: 2023-09-27 18:03:02
这可能吗?我在这里要做的是从一个目录中获取文件名,然后使用这些文件名在一个文本文件中删除现有的文本替换文件名。我遇到的问题是filename1替换了文件中的所有oldtext .txt文件
中每个oldtext只需要一个文件名的年代吗?= text in .txt我想替换为文件名
。
用filename1替换oldtext1
将oldtext2替换为filename2
将oldtext3替换为filename3
等等
按字母顺序排列。
提前感谢。
.
DirectoryInfo dinfo1 = new DirectoryInfo(path);
FileInfo[] Files1 = dinfo1.GetFiles("*.*");
string text = File.ReadAllText("path/text.txt");
foreach (FileInfo file in Files1)
{
text = text.Replace("oldtext1", "path" + file.Name);
text = text.Replace("oldtext2", "path" + file.Name);
text = text.Replace("oldtext3", "path" + file.Name);
}
File.WriteAllText("path/text.txt", text)
,
当前代码用相同的文件名替换循环中的所有文本,因此在循环完成后,所有的旧文本都应该包含最后一个文件名。
你应该这样做:
DirectoryInfo dinfo1 = new DirectoryInfo(path);
FileInfo[] Files1 = dinfo1.GetFiles("*.*");
string[] StringsToReplace = {"oldtext1", "oldtext2", "oldtext2"};
string text = File.ReadAllText("path/text.txt");
for(int i=0; i < StringsToReplace.Length; i++)
{
if(i >= Files1.Length)
{
break;
}
text = text.Replace(StringsToReplace[i], "path" + Files1[i].Name);
}
File.WriteAllText("path/text.txt", text);