Я пытаюсь научить себя (больно), как делать ввод-вывод файлов в объективе-c. Следующий код предназначен для того, чтобы пользователь мог ввести имя файла из stdin, а затем создать NSFileManager, используя это имя. Код работает, если я жестко запрограммировал имя файла как NSString (показано в комментированном коде @ "barney.txt". Однако ничего не происходит, если я использую то же имя файла с stdin. Программа NSLog выдает имя файла. Но, не кости на FileManager.имя файла из stdin для NSFileManager object-c
мне нужна помощь.
Спасибо, Марк Allyn
enter code here
#import <Foundation/Foundation.h>
int main (int argc, char ** argv)
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
//NSString * fName = @"barney.txt";
NSFileManager * fm;
//NSDictionary *attr;
NSFileHandle *input = [NSFileHandle fileHandleWithStandardInput];
NSLog(@"Created file handle...");
NSLog(@"Enter File Name");
NSData *inputData = [input availableData];
NSLog(@"Created NSData object");
NSString *fName = [[NSString alloc] initWithData:inputData encoding:NSUTF8StringEncoding];
NSLog(@"Created NSString object");
NSLog(@"You entered %@ as the name\n", fName);
fm = [[NSFileManager alloc] init ]; //defaultManager
if (fm == nil)
{
NSLog(@"Failed to create file manager object\n");
}
if ([fm fileExistsAtPath:fName] == YES){
NSLog(@"File Exists!");
NSLog(@"%p", fm);
} else
{
NSLog(@"File Appears not to exist");
}
[fm release];
[pool drain];
return 0;
}
В чем проблема? Какие журналы вы видите? – rmaddy
BTW - если вы играете с кодом уровня командной строки и имеете дело с 'stdin', почему вы используете iOS и не делаете это на Mac в качестве приложения OS X? – rmaddy
Фактическая проблема заключается в том, что программа печатает «Файл кажется, что он не существует». –