gpt4 book ai didi

c# - 使用(FileStream)创建临时文件导致 "The process cannot access the file because it is being used"

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

我正在从 SQL 服务器读取文件并将其临时写入磁盘,以便另一个程序可以访问它。使用 Path.GetTempFileName() 非常简单。

我的问题是我需要在该过程完成后删除这些临时文件。我正在使用 FileStream 类执行此操作,例如:

using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write,    FileShare.None, 8, FileOptions.DeleteOnClose))
{
//code here ultimately accessing the temp file
}

设置了 fileOptions 后,一旦 using 完成并释放 FileStream,文件就会被删除。该文件肯定是按提示创建和删除的,但是任何访问该文件的进程都会响应“该进程无法访问该文件,因为它正在被使用...”

如果我的 FileStream 仍然可以访问文件是可以理解的(我尝试修改 FileShare 但没有成功;这个其他进程不是文件流。)

我希望避免使用删除方法(这将需要更多错误捕获)。是否有一种简单的方法(利用 FileStream)创建我的临时文件并在其他进程完成后将其删除?

最佳答案

我在这里看不到 using 语句的可能性,但您可以使用 Process.WaitForExit() 方法等待其他进程结束,之后您可以安全地删除文件。

关于c# - 使用(FileStream)创建临时文件导致 "The process cannot access the file because it is being used",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4388850/

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