2
我不知道爲什麼,但我的分塊上傳不起作用。讀取的第一個塊可能是正確的,但以下塊只包含0
。爲什麼這個塊閱讀代碼不起作用?
/// <summary>
/// Gibt die Bytesequenz des angeforderten Chunks zurück
/// </summary>
/// <param name="chunkNumber">Die Position des Chunks im Array</param>
/// <returns>Die Bytesequenz des angeforderten Chunks</returns>
byte[] FileToChunk(int chunkNumber)
{
byte[] chunkBuffer = new byte[chunkSize];
FileStream fileStream = new
FileStream("C:\\Users\\Patrick\\Downloads\\Prog\\UnityAssets\\start.unitypackage"
, FileMode.Open
, FileAccess.Read
);
fileStream.Seek((chunkNumber - 1) * chunkSize, SeekOrigin.Begin);
while (fileStream.Read(chunkBuffer, 0, chunkBuffer.Length) > 0);
if ( fileStream.Position != fileStream.Length
&& fileStream.Position != fileStream.Position - 1
)
fileStream.Close();
return chunkBuffer;
}
因此,應提取的塊數作爲參數傳遞,並與 fileStream.Seek()
我想去被問塊的位置。正如我已經說過的,這個方法的第一個調用返回一個可能工作的塊,但所有其他調用返回Byte[]
- 數組填充0
。 chunkSize
是256kB(1024 * 256字節),我想讀取的文件大小爲〜11MB(= 11000kB),所以它應該被拆分成(int)Math.Ceiling((double)(file.fileSize/chunkSize))
部分。
我在做什麼錯?