我从SQL Server数据库字段获取二进制数据,并在我的应用程序具有权限的目录中本地创建文档.但是我仍然得到标题中指定的错误.我已尝试在网上发布了许多建议,包括在Stackoverflow上的帖子中提出的建议.我还使用了ProcessExplorer> Find Handle来找到锁,它没有返回任何内容,好像文件没有被锁定一样.
我使用下面的代码将文件保存到文件系统,然后我尝试在另一个方法的应用程序进程中将此文件复制到新位置.正是这种复制方法采用了抛出异常的新创建文件的路径.
文件本身是用它的内容创建的,我可以通过Windows资源管理器打开它,没有任何问题.
我错过了一些完全明显的东西吗 我是否正确地从数据库创建文件?任何有关解决或更好地诊断问题的帮助将非常感激.
// Get file from DB
FileStream fs = new FileStream(
"C:\myTempDirectory\myFile.doc", FileMode.OpenOrCreate, FileAccess.Write);
BinaryWriter br = new BinaryWriter(fs);
br.Write("BinaryDataFromDB");
fs.Flush();
fs.Close();
fs.Dispose();
// Copy file
File.Copy(sourceFileName, destinationFilename, true);
Run Code Online (Sandbox Code Playgroud)
Jes*_*alm 29
GC.Collect()在处理完流之后尝试添加一个调用来强制垃圾收集器清理.
// Get file from DB
using(FileStream fs = new FileStream("C:\myTempDirectory\myFile.doc", FileMode.OpenOrCreate, FileAccess.Write))
using(BinaryWriter br = new BinaryWriter(fs))
{
br.Write("BinaryDataFromDB");
fs.Flush();
}
//Force clean up
GC.Collect();
// Copy file
File.Copy(sourceFileName, destinationFilename, true);
Run Code Online (Sandbox Code Playgroud)