0

ドキュメントディレクトリにダウンロードした後、ドキュメントのファイルサイズが正しいことを確認しようとしています。Webサービスヘルパーファイルのどこで確認できるかわかりませんか?または最良の方法。

ダウンロードを開始する前に、予想されるファイルの長さを取得できます。また、バーストごとに送信されるデータの長さを取得できます。これらのバースト数を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);
}

どんな助けやアイデアも大歓迎です。ありがとう。

4

1 に答える 1

0

ダウンロードが完了した後、ファイル システムを照会しないのはなぜですか?

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

ダウンロードが完了したと言われたら、この呼び出しを行います。NSURLConnection のドキュメントによると、デリゲートはこれを受け取る必要があります。

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
于 2012-04-18T17:28:41.907 に答える