2015-02-23 96 views
1

我想返回一個字節數組的子字符串。字節數組子字符串

(另一個應用程序將數據推到我的數據庫,其中文件具有附加一個前置的GUID。我想刪除這個GUID,並給該文件時返回給用戶)

if (bytes.Length > 38) 
      { 
       string s = System.Text.Encoding.ASCII.GetString(bytes); 
       returnBytes = Convert.FromBase64String(s.Substring(38)); 
      } 

是否有可能要做到這一點沒有文字編碼?也許通過Array.Copy()?

感謝您的任何建議。

+0

檢查這個http://stackoverflow.com/questions/13618231/how -to-pass-substring-of-byte-array-using-index-in-c – 2015-02-23 10:56:03

+0

你知道你的guid在字節數組中的確切位置嗎? – dyatchenko 2015-02-23 10:56:06

回答

1

可以使用Buffer.BlockCopy

Byte[] fileBytes = new Byte[bytes.Length - 16]; 
    Buffer.BlockCopy(bytes, 16, fileBytes, 0, fileBytes.Length); 

BTW GUID是通常16個字節長度,38是字符串長度

+0

這是行不通的,因爲它會截斷我的byteArray,但不幸的是我的pdf不可讀。似乎是跳過多少字節的問題。 – Nils 2015-02-23 13:02:49

1

對於返回數組的子串的部分,可以使用ArraySegment<T>。 請參閱本link