我對C#相對比較陌生,並且試圖將我在wxMaxima中設計的文本加密算法調整爲使用Visual Studio窗體的C#中的二進制加密程序。由於我對讀取/寫入二進制文件不熟悉,因此缺乏關於在嘗試讀取或寫入文件流時發生的情況的知識。System.IO - BinaryReader/Writer是否正確讀取/寫入文件包含的內容? (抽象概念)
例如,我不想象過去那樣對文本文件進行加密,而是想要加密可執行文件或任何其他形式的二進制文件。
這裏有幾個問題我不明白:
當我打開一個文件流和使用BinaryReader在將它在絕對一切文件中的絕對的重複閱讀?例如,我希望能夠讀取整個文件,刪除原始文件,然後用舊名稱創建一個新文件並將整個二進制流寫回。這會重現原始文件嗎?還是會有某種形式的腐敗,否則必須解釋?
因爲它是一個加密程序,所以我希望在刪除原始文件之前添加一個低級「格式化」功能,因此通過梳理硬盤的物理數據在理論上是無法訪問的。如果我使用二進制打字機重寫原始文件的一部分,將其放在硬盤上的相同位置,或者文件會變成碎片,實際上只是通過FAT重定向到硬盤的其他部分?顯然,如果原始文件沒有覆蓋硬盤上的原始文件羣,那麼用原始文件覆蓋原始文件就沒有意義了。
非常感謝您的信息。我想你會打開一個文件流,然後使用binaryreader來閱讀它。 我很擔心NTFS系統在做這件事(不敢相信我稱之爲FAT--這是自從我讀完基本計算機科學體系結構以來已經過了多長時間)。 我會做更多的研究,看看我能否創建一些讓我通過指針/ ref訪問硬盤的東西。我並沒有真正使用它 - 只是讓它磨練技能。但是,放棄它並不會有什麼傷害,所以我寧願給人這樣的選擇。 – ThisHandleNotInUse