1

ファイルを 10MB のチャンクに分割するスクリプトがあります。6GB のファイルで実行しようとするまで、このスクリプトに問題はありませんでした。uint64_t であっても、範囲で負の値を取得します。エラーの場所に関する提案はありますか?

NSData *conData = [NSURLConnection sendSynchronousRequest:fileSizeRequest returningResponse:&response error:&error];

if (conData)
{
    NSDictionary *headers = [response allHeaderFields];
    NSString *fileSizeString = [headers objectForKey:@"Content-Length"];
    uint64_t fileSize = strtoull([fileSizeString UTF8String], NULL, 0);
    self.size += fileSize;

    uint64_t amountOfRanges = fileSize / 10485760;
    for (int i = 0; i <= amountOfRanges; i++)
    {
        uint64_t rangeMin = 0;
        uint64_t rangeMax = 0;

        if (i != amountOfRanges)
        {
            rangeMin = i * 10485760;
            rangeMax = (i + 1) * 10485760 - 1;
        }
        else
        {
            if (i == 0)
            {
                rangeMin = 0;
                rangeMax = fileSize - 1;
            }
            else
            {
                rangeMin = i * 10485760;
                rangeMax = i * 10485760 - 1 + (fileSize - rangeMin);
            }
        }
    }
}
4

1 に答える 1