PDA

View Full Version : خواندن به صورت تکه تکه فایل [split]



areeef
شنبه 26 دی 1394, 14:46 عصر
سلام من میخوام تکه تکه از بایت 0 شروع کنم فایل رو بخونم و به یک متد بفرستم. آیا کد زیر که نوشتم مشکل داره ؟ ( فکر کنم هر دفعه تو حلقه میاد از 0 تا 1024 رو میخونه)



while (len > 0 )
{
byte[] datas = new byte[1024];
var n = fs.Read(datas, 0, 1024);

// Break when the end of the file is reached.
if (n == 0)
break;


md5 = md55(datas);

var request = new UploadPhoto(5559985, ii, datas);
await _sender.Send(request);
await _sender.Recieve(request);

kk = request.chk;
len -= n;
ii++;
}

ژیار رحیمی
شنبه 26 دی 1394, 16:31 عصر
var buffer = new byte[1024];
while (fs.CanRead)
{
fs.Read(buffer, 0, buffer.Length);
md5 = md55(buffer);
var request = new UploadPhoto(5559985, ii, buffer);
await _sender.Send(request);
await _sender.Recieve(request);
kk = request.chk;
ii++;
}

areeef
شنبه 26 دی 1394, 22:19 عصر
var buffer = new byte[1024];
while (fs.CanRead)
{
fs.Read(buffer, 0, buffer.Length);
md5 = md55(buffer);
var request = new UploadPhoto(5559985, ii, buffer);
await _sender.Send(request);
await _sender.Recieve(request);
kk = request.chk;
ii++;
}


نباید offset تایین کنیم ؟

ژیار رحیمی
شنبه 26 دی 1394, 23:17 عصر
نه دوست گرامی شما از ابتدای فایل شروع به خوندن میکنید.با هر بار خواندن از فایل اشاره گر داخلی فایل اتومات رو به جلو(بصورت پیشفرض) حرکت میکند.اگر بخوای از نقطه ای غیر از ابتدای فایل شروع به خواندن کنی آنگاه offset نقطه شروع رو بدست میاری سپس با استفاده از تابع Seek اشاره گر رو به نقطه offset هدایت میکنی سپس اقدام به خواندن از فایل میکینی