簡體   English   中英

文件流創建或附加問題

[英]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.

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