[英]Filestream create or append issue
我遇到了FileStreams的問題。 我正在為我正在處理的FPGA項目編寫C#串行接口,接收數據包(包含16個字節)創建並將字節寫入文件,然后附加到創建的文件。
該程序沒有拋出任何錯誤,但似乎沒有過去創建文件,也沒有寫任何數據。
有任何想法嗎? 有沒有更好的方法來OpenOrAapnd文件?
先謝謝你,邁克爾
private void SendReceivedDataToFile(int sendBytes)
{
if (saveFileCreated == false)
{
FileStream writeFileStream = new FileStream(tbSaveDirectory.Text, FileMode.Create);
writeFileStream.Write(oldData, 0, sendBytes);
writeFileStream.Flush();
writeFileStream.Close();
saveFileCreated = true;
readByteCount = readByteCount + sendBytes;
}
else
{
using (var writeFilestream2 = new FileStream(tbSaveDirectory.Text, FileMode.Append))
{
writeFilestream2.Write(oldData, 0, sendBytes);
writeFilestream2.Flush();
writeFilestream2.Close();
readByteCount = readByteCount + sendBytes;
}
}
if (readByteCount == readFileSize) // all data has been recieved so close file.
{
saveFileCreated = false;
}
}
FileMode.Append
已經表示“創建或追加”,所以你真的只需要在else {}
你的一部分if
。 您也不需要調用Flush()
或Close()
- 處理流將為您執行此操作。 不確定不寫數據......你是否試圖追蹤你的代碼?
所以首先我會將你的代碼減少到
private void SendReceivedDataToFile(int sendBytes)
{
using (var fs = new FileStream(tbSaveDirectory.Text, FileMode.Append))
fs.Write(oldData, 0, sendBytes);
readByteCount += sendBytes;
}
然后嘗試計算oldData
中的oldData
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.