明智的社区! 我可能会在很简单的情况下再次向您寻求帮助。
所以。 我有一些带有文本行的文件(.ini文件)。文件示例:
[SomeGuy]
Name = Alex;
Surname = Newbie;
EMails = "-mails=@mail1@somemail.com;@mail2@somemail.com;" -MainEmail=mail1@somemail.com
Visits = 0;
...
我正在寻找以下解决方案: 1)替换:
EMails = "-mails=@mail1@somemail.com;@mail2@somemail.com;" -MainEmail=mail1@somemail.com
到
EMails = "-mails=@mail1@somemail.com;@mail2@somemail.com;" -MainEmail=NewEmail
2)或删除:
EMails = "-mails=@mail1@somemail.com;@mail2@somemail.com;" -MainEmail=mail1@somemail.com
并适合其位置:
EMails = "-mails=@mail1@somemail.com;@mail2@somemail.com;" -MainEmail=NewEmail
“ NewEmail”在哪里-是从用户输入中获取的新变量值。
我在这里搜索了一些解决方案,找到了一些并在本示例中应用了
string IniFile = @"S:\My.ini";
var fileStrings = File.ReadAllLines(IniFile).ToList();
for (var i = fileStrings.Count - 1; i >= 0; i--)
{
if (fileStrings[i].StartsWith("EMails"))
fileStrings.RemoveAt(i);
}
string NewEmail = "EMails = \"-mails=@mail1@somemail.com;@mail2@somemail.com;\" -MainEmail"+EMailField.Text;
File.AppendText(IniFile).Write(NewEmail);
File.WriteAllLines(IniFile, fileStrings);
EMailField是用户输入字段,我从中输入值(EMailField.Text)。
在此示例中,输入后出现错误: System.IO.IOException:该进程无法访问文件'S:\ My.ini',因为它正在被另一个进程使用。
但是它没有打开,使用或其他。 我还尝试通过应用以下方法将所有行从原始文件写入另一文件:
string NewIniFile = @"S:\MyNew.ini";
...
File.WriteAllLines(NewIniFile, fileStrings);
但是再次出现相同的错误-“ ...的S:\ My.ini'正在被另一个进程使用。”
使用Visual Studio 2019并创建Windows窗体应用程序。
请戳我一下我在做什么错