0
我需要讀取文件的內容並在文件鎖定時覆蓋它。我不希望文件在讀取和寫入操作之間解鎖。如何鎖定文件,讀取其內容並覆蓋它?
using (var file = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None))
{
using (var reader = new StreamReader(file, Encoding.Unicode))
using (var writer = new StreamWriter(file, Encoding.Unicode))
{
// read
// calculate new content
// overwrite - how do I do this???
}
}
如果我用兩個FileStream
S,實例作家當文件被清除,但該文件將讀者和作家之間的實例進行簡要解鎖。
using (var reader = new StreamReader(new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Read, FileShare.None)))
{
// read
// calculate new content
}
using (var writer = new StreamWriter(new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None)))
{
// write
}
這需要在V4.5的依賴,因爲與leaveOpen的構造函數是不是之前它用。 –
感謝您的快速回答! –
沒有理由使用新的'leaveOpen'參數來解決這個問題。打開文件作爲讀/寫就足夠了。讀取器和寫入器都可以同時創建,並且在讀取之後但在寫入之前設置基礎流長度。 –