0
メソッドtransmitDataでは、NSArrayファイルはnilになります。私のコードのどこに問題がありますか?私はファイルを保存します([file writeToURL:fileURL atomically:YES])、次にtransmitDataを呼び出しますが、ファイルを取得することはできません。NSFileManagerファイルを取得できません
#import "FileManagerService.h"
#import "SynthesizeSingleton.h"
@implementation FileManagerService
SYNTHESIZE_SINGLETON_FOR_CLASS(FileManagerService);
#define SAVEVOTER @"SV"
#define SAVESCRIPT @"SS"
- (NSURL *)applicationDocumentsDirectory
{
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}
-(void)saveFile:(NSData*)file:(NSString*)dataType
{
NSFileManager *manager = [NSFileManager defaultManager];
NSURL *fileURL;
NSString *fileName;
if (dataType == DATA_SAVE_VOTER)
{
fileName = [NSString stringWithFormat:@"%@01",SAVEVOTER];
fileURL = [[self applicationDocumentsDirectory]URLByAppendingPathComponent:fileName];
int fID = 0;
while ([manager fileExistsAtPath:[fileURL absoluteString]])
{
fID++;
fileName = [NSString stringWithFormat:@"%@%d",SAVEVOTER,fID];
fileURL = [[self applicationDocumentsDirectory]URLByAppendingPathComponent:fileName];
}
}
else if (dataType == DATA_SAVE_SCRIPT)
{
fileName = [NSString stringWithFormat:@"%@01",SAVESCRIPT];
fileURL = [[self applicationDocumentsDirectory]URLByAppendingPathComponent:fileName];
int fID = 0;
while ([manager fileExistsAtPath:[fileURL absoluteString]])
{
fID++;
fileName = [NSString stringWithFormat:@"%@%d",SAVESCRIPT,fID];
fileURL = [[self applicationDocumentsDirectory]URLByAppendingPathComponent:fileName];
}
}
[file writeToURL:fileURL atomically:YES];
}
-(void)transmitData
{
NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[[self applicationDocumentsDirectory]absoluteString] error:NULL];
if (files == nil || [files count] <= 0)
{
NSLog(@"No files to transmit");
return;
}
for (id file in files)
{
NSData * dt = file;
NSString *str = [[NSString alloc]initWithData:dt encoding:NSUTF8StringEncoding];
NSLog(@"DataContents: %@",str);
}
}
@end
EDIT:より多くのテスト時 :
fileName = @"testfile";
fileURL = [[self applicationDocumentsDirectory]URLByAppendingPathComponent:fileName];
NSLog(@"URL1: %@",[fileURL absoluteString]);
私のログがNullをアップ来ています。だから私は明らかにnullファイルの場所で保存しているので、私はファイルを取り出すことができません....なぜこれが起こっているのですか? FIXED
:
だから私は、なぜわかりませんが、[ファイルwriteToURL:fileURLはアトミック:YES]は動作しませんし、[[NSFileManager defaultManager] createFileAtPath:fileURL 内容: ファイル属性:nilを]; は機能しません。
私の悪い、absoluteStringを使用しないでください。私の答えを編集しました。 – Akshay
私が提案したコードを使用していますか? – Akshay
simではなくデバイスでテストすれば、有効なURLが得られるように見えますが、それでもファイルは取得できません。 – spentak