如何获取文件的名称以及如何在指定行之前添加新行

本文关键字:新行 添加 获取 何获取 文件 | 更新日期: 2023-09-27 18:15:42

我有一个获得目的地的变量:

var lin = (Path + "config.ini").ToString();
var lines = File.ReadAllLines(lin);
var InstallerFile = lines.Where(txt => txt.Contains("IstallerFile="))
                    .Select(txt => txt.Split('=')[1].Replace("'"", "")).FirstOrDefault();

在我运行这段代码后,我将有:InstallerFile=D:'folder'instaler.iniInstallerFile=D:'folder'instaler_input.ini,这取决于我在config文件中有什么。现在用以下命令复制C:'temp'中的文件:

if (File.Exists(InstallerFile))
    System.IO.File.Copy(InstallerFile, @"C:'temp'");

,现在我想验证文件的名称,因为行是不同的。例如,如果我有installer.ini,我需要这样做:

var modifiedLines = linesInst.Select(line =>
{
    if (line.StartsWith("destination="))
        return string.Format("destination='"{0}", textBox1.Text);
    else
        return line;
});
File.WriteAllLines(InstallerFile, modifiedLines);

,如果我有installer_input.ini,我需要在这个文件上添加一行,在#product=MAtlab开始的行之前。我有两个问题,如何获取文件名以及如何在指定行前添加新行

如何获取文件的名称以及如何在指定行之前添加新行

你可以这样获取文件名:

Path.GetFileName(path)

在指定行之前插入新行必须读取所有文件,当找到特定行时推入新元素。示例代码如下:

string path=Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"32901448","InputFle.txt");
            string[] lines = File.ReadAllLines(path);
            List<string> linesOut = new List<string>();
            foreach (string line in lines)
            {
                if (line.ToUpper().Trim() == "BLUE")
                {
                    linesOut.Add("YELLOW");    
                }
                linesOut.Add(line);
            }
            File.WriteAllLines(path, linesOut);