2014-10-22 17 views
1

問題:是否有可能(以及如何?)將字節數組附加到現有文件而不將整個文件加載到內存中。C#追加字節數組到文件的開頭(沒有在內存中加載整個文件)

更具體: 的目標是做改造這個:

00000000 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 
00000010 00 00 10 00 00 00 08 00 08 02 00 00 00 29 F0 61 
00000020 E9 00 00 00 09 70 48 59 73 00 00 17 12 00 00 17 
00000030 12 01 67 9F D2 52 00 00 20 00 49 44 41 54 78 DA 
00000040 DC BD DB 76 24 39 AE 2C 08 F0 E2 1E AA EA F9 FF 
00000050 FF 9C 5E A7 53 EE BC 60 1E 8C 80 C3 AF 0A 29 B3 
00000060 76 EF 33 7A A8 A5 52 46 F8 85 04 41 10 30 33 30 
00000070 33 D3 37 7F 44 E4 07 DF FA 5F F5 C3 CC 22 F2 F0 
00000080 AF 97 6F 8A AF E0 BB 0F 57 B0 7F 12 22 3E FD FD 

到這一點:

--added bytes 
00000000 74 65 73 74 74 65 73 74 74 65 73 74 74 65 73 74 
--added bytes 
00000010 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 
00000020 00 00 10 00 00 00 08 00 08 02 00 00 00 29 F0 61 
00000030 E9 00 00 00 09 70 48 59 73 00 00 17 12 00 00 17 
00000040 12 01 67 9F D2 52 00 00 20 00 49 44 41 54 78 DA 
00000050 DC BD DB 76 24 39 AE 2C 08 F0 E2 1E AA EA F9 FF 
00000060 FF 9C 5E A7 53 EE BC 60 1E 8C 80 C3 AF 0A 29 B3 
00000070 76 EF 33 7A A8 A5 52 46 F8 85 04 41 10 30 33 30 
00000080 33 D3 37 7F 44 E4 07 DF FA 5F F5 C3 CC 22 F2 F0 

我一直在試圖整個上午摸不着頭腦,但我似乎無法找到可行的解決方案。 我知道有可能在最後追加一個文件而不將文件加載到內存中,但我需要追加開頭。

在此先感謝

+1

創建一個臨時文件,寫入你有的字節(必須在開始時添加),然後用* chunks *讀取源文件,將其寫入臨時文件,替換源文件並刪除臨時文件。 – 2014-10-22 08:39:27

回答

0

簡而言之,這是不可能的。這不是文件的工作方式。根據您的操作方式,您可能不需要將整個文件同時加載到內存,但需要加載該文件的每個單字節並將其寫入到寫入前端的字節之後。

相關問題