我有以下函数来处理上传的图像。
它在第一次尝试时工作正常(重新启动 IIS 后),但在第二次尝试时我总是得到
该进程无法访问该文件,因为它正被另一个进程使用
现在,我确实知道文件以某种方式被 IIS 保持打开状态,但是如果我有,为什么会发生这种情况
newFile.Flush();
newFile.Close();
newFile.Dispose();
这是完整的功能:
private void SaveFile(HttpPostedFile file, string path)
{
Int32 fileLength = file.ContentLength;
string fileName = file.FileName;
byte[] buffer = new byte[fileLength];
file.InputStream.Read(buffer, 0, fileLength);
FileStream newFile = new FileStream(path, FileMode.Create, FileAccess.Write);
try
{
newFile.Write(buffer, 0, buffer.Length);
}
catch { }
finally
{
newFile.Flush();
newFile.Close();
newFile.Dispose();
}
}
更新:
经过几次检查,我确信没有其他任何东西可以锁定文件,但这w3wp.exe
是 IIS 进程。