이유는 모르지만 청크 업로드는 작동하지 않습니다. 아마 첫 번째 청크가 올바르지 만 다음 청크는 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[]
- 배열을 반환합니다. chunkSize
은 256kB (1024 * 256 바이트)이고 읽으려는 파일의 크기는 11MB (= 11000kB)이므로 (int)Math.Ceiling((double)(file.fileSize/chunkSize))
부분으로 분할해야합니다.
내가 뭘 잘못하고 있니?