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

我正在用 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;

                    }


                }


记事本打开,程序正在等待它关闭。用户无法做的一件事是保存所做的更改。


千万里不及你
浏览 83回答 1
1回答

蝴蝶刀刀

下面的行为StreamWriter您创建了一个:File.CreateText(textFilePath);它旨在像这样使用:using (var writer = File.CreateText(textFilePath)) {     writer.WriteLine("Hi!"); };如果您不想向文件写入任何内容,请StreamWriter立即关闭:File.CreateText(textFilePath).Close();
打开App,查看更多内容
随时随地看视频慕课网APP