Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 读取文件';s从dropbox下载的内容-objective-c_Iphone_Ios_Objective C_Readfile_Dropbox Api - Fatal编程技术网

Iphone 读取文件';s从dropbox下载的内容-objective-c

Iphone 读取文件';s从dropbox下载的内容-objective-c,iphone,ios,objective-c,readfile,dropbox-api,Iphone,Ios,Objective C,Readfile,Dropbox Api,我想读取并打印从dropbox下载的文件内容,但我的“readFile”方法打印空值。我确信该文件已成功下载 -(void)download { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *f

我想读取并打印从dropbox下载的文件内容,但我的“readFile”方法打印空值。我确信该文件已成功下载

-(void)download
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", @"File.txt"]];


    [[self restClient] loadFile:@"/File.txt" intoPath:filePath];

}
- (void)restClient:(DBRestClient*)client loadedFile:(NSString*)localPath
       contentType:(NSString*)contentType metadata:(DBMetadata*)metadata {

    [self readFile:@"File.txt"];
    NSLog(@"File loaded into path: %@", localPath);
}

-(void)readFile:(NSString *)fileName
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *fileNameData=[NSString stringWithFormat:@"%@",fileName];
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:fileNameData];
    NSString *str = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL];

    NSError *error;

    NSString *str = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];

    NSLog(@"%@", error);
}
这就是输出:

---------******** CONTENT OF THE DOWNLOADED FILE *********------------(null)

我更新了捕获erorr的代码,我从stringWithContentsOfFile中得到此错误:

Error Domain=NSCocoaErrorDomain Code=261 "The operation couldn’t be completed. (Cocoa error 261.)" UserInfo=0x1669c2b0 {NSFilePath=/var/mobile/Applications/11B10727-E372-1147-26BD-1D24S60B8E54/Docume‌​nts/File.txt, NSStringEncoding=4} 2013-08-05 22:06:03.229 DBApp[496:60b]

看起来您的代码正在读取一个名为“file.txt”的文件,而不是从Dropbox下载的实际文件。我错过什么了吗

编辑


根据下面的注释,错误似乎是261,与字符串编码有关。您可能需要尝试不同的编码,或确保文本文件按预期的方式编码。

实际的文件名也是file.txt,从Dropbox下载的文件您应该在文件读写的断点处。我认为您的下载不起作用。所以您在日志中看到“文件加载到路径:File.txt”了吗?您还可以尝试从
stringWithContentsOfFile
捕获错误,以防其中有有用的内容。我从stringWithContentsOfFile获取此错误:错误域=NSCOCAERRORDOMAIN代码=261“操作无法完成。(Cocoa错误261)。”用户信息=0x1669c2b0{NSFilePath=/var/mobile/Applications/11B10727-E372-1147-26BD-1D24S60B8E54/Documents/File.txt,NSStringEncoding=4}2013-08-05 22:06:03.229 DBApp[496:60b]该文件包含一些非英语字符,我删除了这些字符,现在效果很好..非常感谢@smarx。。。