我正在从SQL服务器读取文件并将其临时写入磁盘,以便其他程序可以访问它。使用Path.GetTempFileName()很容易。使用(FileStream)创建临时文件导致“进程无法访问该文件,因为它正在被使用”
我的问题是,我需要这些临时文件删除后,一旦进程已完成。我这样做是与FileStream类,如:
using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.None, 8, FileOptions.DeleteOnClose))
{
//code here ultimately accessing the temp file
}
随着fileOptions集,一旦使用结束,的FileStream配置文件被删除。该文件明确创建和删除的提示,但访问该文件的任何程序与响应“的过程,因为它正在使用无法访问文件...”
可以理解,如果我的FileStream仍然可以访问文件(我试过修改FileShare没有成功;这个过程不是文件流。)
我希望避免使用删除方法(这将需要更多的错误捕获)。是否有一种简单的方法(利用FileStream)创建我的临时文件并在其他进程完成后将其删除?
工作只是为了确认,如果使用FileShare.ReadWrite,你仍然有问题? – 2010-12-08 14:57:58
确认。文件仍在使用中(其他进程不是FileStream)。 – MoSlo 2010-12-08 15:02:49
你有任何控制其他应用程序?你怎么知道文件被读取的时间? – 2010-12-08 15:14:10