一千萬個為什麽

搜索

FileStream保存文件然後立即在.NET中解鎖?

我有這個代碼保存pdf文件。

FileStream fs = new FileStream(SaveLocation, FileMode.Create);
fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
fs.Flush();
fs.Close();

它工作正常。但是,有時它不會立即釋放鎖定,並導致文件鎖定異常,並且在此次運行後運行函數。

Is there a ideal way to release the file lock right after the fs.Close()

最佳答案

這是理想的:

using (var fs = new FileStream(SaveLocation, FileMode.Create))
{
    fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
}

這大致相當於:

FileStream fs =  null;
try
{
    fs = new FileStream(SaveLocation, FileMode.Create);
    fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
}
finally
{
    if (fs != null)
    {
        ((IDisposable)fs).Dispose();
    }
}

使用更具可讀性。


更新:

@aron,現在我在想

File.WriteAllBytes(SaveLocation, result.DocumentBytes);

看起來比理想的更漂亮:-)

轉載註明原文: FileStream保存文件然後立即在.NET中解鎖?