gpt4 book ai didi

C# 不运行或删除文件

转载 作者:行者123 更新时间:2023-11-30 19:17:38 25 4
gpt4 key购买 nike

此 C# 程序使一个批处理文件运行它,然后应该删除该文件。当我运行程序时,如果最后一个 if 语句不存在,它会生成批处理文件并完美执行它。但是对于最后一个 if 语句,它创建文件并将其删除但不进行任何更改。

 string batFile;
batFile = genBat(textBox1.Text);
string path = "C:\\Windows\\System32\\drivers\\etc\\blocksite.bat";

using (StreamWriter sw = new StreamWriter(path))
{
sw.WriteLine(@batFile);
sw.Close();
}

Process.Start(path);

if(File.Exists(path))
{
File.Delete(path)
}

最佳答案

可能发生的情况是您在 cmd.exe 进程可以读取和处理它之前设法删除了 .bat 文件。在删除文件之前,您需要等待使用 Process.Start 启动的进程完成。像这样:

using (var process = Process.Start(path)) {
process.WaitForExit();
}

顺便说一句,我确实想知道为什么您觉得有必要在您不应该写入的目录中创建 .bat 文件。您可以轻松地在临时目录下创建 .bat 文件。如果您需要工作目录是一个不同的目录,那么您可以在启动该过程时轻松指定。

关于C# 不运行或删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17014283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com