为了账号安全,请及时绑定邮箱和手机立即绑定

编辑使用 Process.Start() 打开的文本文件时如何修复“被另一个进程使用”错误?

编辑使用 Process.Start() 打开的文本文件时如何修复“被另一个进程使用”错误?

C#
千万里不及你 2022-12-31 13:15:50
我正在用 C# 制作控制台应用程序。我用一个Process.Start()函数打开一个文本文件,可以直接在记事本中编辑,程序等待记事本关闭。但是当试图保存文件时,会弹出一条警告消息,提示“文件正在被另一个进程使用”。由于我是初学者,我不知道如何解决这个问题。我知道FileAccess, FileMode,FileStream但我从未使用过它们,并且认为它们在这一点上没有帮助。这是 Main() 方法之前的构造函数public AccountApplication()        {            Process process = Process.Start("notepad.exe", textFilePath);            process.WaitForExit();        }以及使用此构造函数的 Main() 方法的一部分           TextFileWriting:                AccountApplication openFile;                Console.Clear();                Console.ForegroundColor = ConsoleColor.Gray;                Console.Write("Enter a file name: ");                string filename = Console.ReadLine();                if (filename == "")                {                    goto TextFileWriting;                }                textFilePath = Path.Combine(currentUserFolder, filename + ".txt");                if (File.Exists(textFilePath))                {                    Console.ForegroundColor = ConsoleColor.Yellow;                    Console.WriteLine("File You specified already has been created. Do you want to overwrite or edit it? (edit/overwrite)");                    string userAnswer = Console.ReadLine();                    if (userAnswer == "edit")                    {                        openFile = new AccountApplication();                        goto MainMenu;                    }                    else if (userAnswer == "overwrite")                    {                        File.CreateText(textFilePath);                        openFile = new AccountApplication();                        goto MainMenu;                    }                    else if (userAnswer == "")                    {                        goto TextFileWriting;                    }                }记事本打开,程序正在等待它关闭。用户无法做的一件事是保存所做的更改。
查看完整描述

1 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

下面的行为StreamWriter您创建了一个:

File.CreateText(textFilePath);

它旨在像这样使用:

using (var writer = File.CreateText(textFilePath))
{
    writer.WriteLine("Hi!");
};

如果您不想向文件写入任何内容,请StreamWriter立即关闭:

File.CreateText(textFilePath).Close();


查看完整回答
反对 回复 2022-12-31
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信