2016-04-18 100 views
0

我正在尋找從一個文件中刪除大部分字節,然後插入一個新的大部分字節開始在原來刪除的字節在同一個地方,所有使用C#。有誰知道如何去做這件事?我無法在網上找到任何幫助。十六進制編輯C#文件?

任何幫助將不勝感激!

謝謝。

+0

您不知道該怎麼辦?讀取文件,編輯讀取的文件或保存編輯的文件?保存和加載的部分,你應該能夠找到大量的教程 –

+0

@ScottChamberlain我不知道如何做十六進制編輯部分(刪除現有的字節,然後添加新的)。我從來沒有在C#中做過類似的事情。 – MattFiler

+0

當您說插入時,是否保留目標文件中超過偏移量的字節?數據有多大?如果它超出了合理保存在內存中的範圍,那麼在傳輸字節時需要額外的代碼來保存緩衝區。 –

回答

1

這應該讓你開始。

步驟如下:

  1. 找到您要編輯的位置。
  2. 準備新的數據

using System; 
using System.Text; 
using System.IO; 

namespace Test 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      using (BinaryWriter writer = new BinaryWriter(File.Open("TextFile1.txt", FileMode.Open, FileAccess.ReadWrite))) 
      { 
       int offset = 1; //position you want to start editing 
       byte[] new_data = new byte[] { 0x68, 0x69 }; //new data 
       writer.Seek(offset, SeekOrigin.Begin); //move your cursor to the position 
       writer.Write(new_data);//write it  
      } 
     } 
    } 
} 
+0

感謝您的迴應,是否可以使用另一個BinaryWriter來填充來自另一個文件的內容的new_data變量? – MattFiler

+0

您可以使用BinaryReader填充緩衝區,並遵循相同的流程。 (如果需要,可以通過chunk來完成)https://msdn.microsoft.com/en-us/library/system.io.binaryreader(v=vs.110).aspx – TLJ