簡體   English   中英

C#中的FileStream ReadWrite

[英]FileStream ReadWrite in C#

我有一個FileStream打開如下:

FileInfo file = new FileInfo(@"C:\Project.xml");
FileStream stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None);
XmlDocument document = new XmlDocument();
document.Load(stream);

加載項目文件時打開流。 現在,我需要能夠在保存更改時覆蓋其內容。 此時,我有一個FileStream對象的引用,該對象保持打開狀態以防止其他應用程序/用戶對其進行更改。

我不明白的是write方法是如何工作的。 先前和新數據的大小可能不同。 所以下面的代碼沒有意義。

stream.Position = 0;
document.Save(stream);
stream.Close();

如何在不關閉流並重新打開的情況下覆蓋內容? 它似乎不合邏輯,如果是,我如何確保在關閉和重新打開流之間的短時間內文件不會被其他東西鎖定?

如果新文檔比舊文檔長,則文件(和流)將自動擴展。

如果沒有,您可以通過調用stream.SetLength()來截斷該文件。
您可能希望將其設置為stream.Position ,它指示到目前為止已寫入的字節數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM