如何在一个文件夹中一个接一个地获取文件名,并在.txt文件中使用它们

本文关键字:一个 文件 txt 并在 文件夹 获取 文件名 | 更新日期: 2023-09-27 18:03:02

这可能吗?我在这里要做的是从一个目录中获取文件名,然后使用这些文件名在一个文本文件中删除现有的文本替换文件名。我遇到的问题是filename1替换了文件中的所有oldtext .txt文件

中每个oldtext只需要一个文件名

的年代吗?= text in .txt我想替换为文件名

  1. 用filename1替换oldtext1

  2. 将oldtext2替换为filename2

  3. 将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)

,

如何在一个文件夹中一个接一个地获取文件名,并在.txt文件中使用它们

当前代码用相同的文件名替换循环中的所有文本,因此在循环完成后,所有的旧文本都应该包含最后一个文件名。

你应该这样做:

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