C# 如何获取文件夹中的文件名并在.txt文件中使用它们

C# 如何获取文件夹中的文件名并在.txt文件中使用它们,c#,C#,这可能吗?我在这里试图做的是从目录中获取文件名,然后在文本文件中使用这些文件名删除现有文本,并用文件名替换。我遇到的问题是filename1替换了文件中的所有oldtext,我只需要.txt文件中每个oldtext有一个文件名 旧文本?=我想用文件名替换.txt中的文本 前 将oldtext1替换为filename1 将oldtext2替换为filename2 将oldtext3替换为filename3 等等 按字母顺序最好 提前谢谢你 ) 当前代码用相同的文件名替换循环中的所有文本,因

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

旧文本?=我想用文件名替换.txt中的文本

  • 将oldtext1替换为filename1

  • 将oldtext2替换为filename2

  • 将oldtext3替换为filename3

    等等

  • 按字母顺序最好

    提前谢谢你


    )

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

    你应该这样做:

    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);
    
    DirectoryInfo dinfo1=新的DirectoryInfo(路径);
    FileInfo[]Files1=dinfo1.GetFiles(“*”);
    字符串[]StringsToReplace={“oldtext1”、“oldtext2”、“oldtext2”};
    string text=File.ReadAllText(“path/text.txt”);
    for(int i=0;i=Files1.Length)
    {
    打破
    }
    text=text.Replace(StringsToReplace[i],“path”+Files1[i].Name);
    }
    File.writealText(“path/text.txt”,text);
    
    ?什么阻止了你?您已经有了
    FileInfo
    数组,可以通过使用linq或创建比较器对其进行排序,并且您有text=
    text.replace…
    -那么问题出在哪里呢,真的吗?问题是它没有移动到filename2,而是替换了所有的oldtext1,oldtext2,文件名为1的oldtext3如果要替换的文件多于字符串怎么办?或者更多的字符串来替换文件?这是不可能的。文件夹文件为图片,文件为转换为.text的.dvds。我使用一个程序根据文件夹中的文件数量生成.dvd,但它不嵌入照片,因此我创建了一个程序,将照片嵌入到.dvd中,因此在生成时,照片位于.dvd文件中。我希望你能理解我说的。所以如果你删除所有文件并添加一个新文件,你的.txt文件将包含例如8个文件名和1个文件在第一个位置。这将导致一个好名称和7个无效名称。这真的是你想要的吗?这太棒了!!!非常感谢,这正是我想象中的效果。你就是佐哈尔
    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);