下载完成IOS4.3 +后检查文件大小

时间:2012-04-18 17:13:20

标签: ios xcode nsurlconnection

我正在尝试将文档的文件大小下载到我的文档目录后检查它是否正确。我不确定在我的webservice帮助文件中检查它的位置?或者最好的方法。

我可以在开始下载之前获得预期的文件长度。我可以获得每次突发发送的数据长度。我想在didReceiveData中每次添加这些突发数字,然后与预期长度进行比较,但不确定如何正确添加它。

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
filesize1 = [[NSNumber numberWithLong: [response expectedContentLength]] retain];
NSLog(@"%@", filesize1);

if(requestType == DF_WS_REQUEST_GET_PDF_DATA)
{
    [[NSFileManager defaultManager] createFileAtPath:self.filename contents:nil attributes:nil];
    self.file = [[NSFileHandle fileHandleForUpdatingAtPath:self.filename] retain];// file is in .h 

    if (self.file)  
    {
        [self.file seekToEndOfFile];
    }
}
else
{
    [webData setLength: 0];
}
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data  
{

resourceLength = [NSNumber numberWithUnsignedInteger:[data length]];
    NSLog(@"resource length: %d", [resourceLength intValue]);

if(requestType == DF_WS_REQUEST_GET_PDF_DATA)
{
    if (self.file)  
    {
        [self.file seekToEndOfFile];
    } 
    [self.file writeData:data];
}
else
    [webData appendData: data];

}

- (void)connectionDidFinishingLoading:(NSURLConnection *)connection {
URL = filePreviewViewController.filePath;
NSError *AttributesError = nil;
NSDictionary *FileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:URL error:&AttributesError];
NSNumber *FileSizeNumber = [FileAttributes objectForKey:NSFileSize];
long FileSize = [FileSizeNumber longValue];

NSLog(@"File: %@, Size: %ld", URL, FileSize);
}

任何帮助或想法都将受到极大的赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

为什么不在下载完成后查询文件系统?

[[[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:&error] fileSize]

当您被告知下载完成时,请拨打此电话。根据NSURLConnection的文档,您的代表应该收到此信息。

- (void)connectionDidFinishLoading:(NSURLConnection *)connection