我試圖讀取一個文件並提取2個數據塊,我們稱它們爲block1和block2,從文件中包含多個數據塊的文件中調用它們。兩個塊都需要在字節數組中返回 。 Block1將開始於文件開始的地方,該行開始 「block1:」,接着是要讀取的字節數。塊2(不一定出現在塊1的 之後)將開始於文件開頭的行「block2:」後面跟着要讀取的 個字節的位置。我被限制在最高的.Net 3.5。從文件中提取字節數組
0
A
回答
0
您可以使用File.ReadAllBytes
和使用Array.Copy
重載之一,如果你知道他們是在指數從返回byte[]
提取您的塊。
0
沒有任何類型的文件頭信息,你必須掃描整個文件,搜索您的block1:
或block2:
標記。
更新:
這裏是你如何做到這一點的樣本(不一定是最好的實現):
byte[] GetBlockOfData(string fileName, string blockName)
{
var allBytes = File.ReadAllBytes(fileName);
// Assuming block names are ASCII-encoded
var blockMarker = Encoding.ASCII.GetBytes(blockName + ":");
// Scan for the first byte of the marker
for (var i = 0; i < allBytes.Length; i++)
{
if (allBytes[i] == blockMarker[i])
{
// See if this is the entire marker
var isMatch == true;
for (var j = 0; j < blockMarker.Length; j++)
{
if (allBytes[i + j] != blockMarker[j])
{
isMatch = false;
break;
}
}
if (isMatch)
{
// Assuming it's a byte...
var blockLength = allBytes[i + blockMarker.Length];
var result = new byte[blockLength];
Array.Copy(
allBytes, i + blockMarker.Length + 1, result, 0,
blockLength);
return result;
}
}
}
return null;
}
+0
感謝您的回覆。我同意。你有沒有示例代碼顯示如何做到這一點? – 2011-01-26 18:18:55
0
正如其他人所說,沒有頭信息,您需要,至少可以通過某種類型的過濾器來查找文件內容,以查找您的「塊」標記。
如果你有頭信息(或至少一些信息的地方,以補償您的塊標記的),你可以使用內存映射文件:
http://www.developer.com/net/article.php/3828586/Using-Memory-Mapped-Files-in-NET-40.htm
這需要.NET 4.0,雖然如果您不使用.NET 4,也可以使用Win32 API。
相關問題
- 1. 如何從字節數組中提取文件擴展名
- 2. 從字節數組獲取文件名
- 3. 從html文件獲取字節數組
- 4. 提取從字節數組積分型
- 5. Linux命令從tar提取單個文件爲字節/字節數組
- 6. 從字段數組中提取文本
- 7. 讀取字節數組與將字節數組寫入文件
- 8. 如何從字節數組中的字節數組開始提取字節不在字節邊界c#
- 9. Python從字節數組中獲取媒體文件元數據
- 10. 從文件中讀取字節數組的數據
- 11. 從C文件中提取int數組
- 12. 從Java字節中提取半字節
- 13. 從ELF二進制文件中提取函數字節
- 14. 聲明字節數組以獲取文件中的字節
- 15. 使用PowerShell從字節數組中提取GPS數值
- 16. 如何從字節數組中提取長數據類型?
- 17. 從文本文件中提取特定的字節文本行
- 18. 從文件名中提取數字
- 19. 從csv文件中提取數字
- 20. 從文件名中提取數字
- 21. 從乳膠文件中提取數字
- 22. 從文件中提取數字
- 23. Android:從字節數組或文件中獲取高度/寬度
- 24. 拆分之前從文件中讀取的字節數組
- 25. 從字節數組或流中獲取文件名
- 26. 作爲字節數組讀取文件
- 27. 讀取字節數組多個文件
- 28. 將字節數組(從讀取文件)轉換爲字符串
- 29. 從字節數組創建文件
- 30. 獲取文件作爲附件從字節數組發送
不幸的是,我不知道它們的索引。 – 2011-01-26 17:43:45
@Ray低音 - 你知道關於塊的什麼_do_?你沒有真正提供你的問題中的任何信息。請編輯它並添加相關信息,以便人們可以給出有用的答案。 – Oded 2011-01-26 17:55:57