2009-11-03 3 views
0

:()는/I 작동이있는 방법을 알아 내려고 노력하고있어 C

NSString *searchCommand = [[NSString alloc] initWithFormat:@"cp -R /Volumes/Public/DirectoryToCopy* Desktop/"]; 

    const char* system_call = [searchCommand UTF8String]; 
    system(system_call); 

시스템을 방법은 내가 특정 문자열을 인정하지 않습니다 나는 다음과 같은 것을 시도해 본다 :

system("kextstat"); 

문제 없음. 모든 문자열을 찾을 문자열 명령이 작동하지 않는 이유는 무엇입니까? 내가 얻는 것은 xCode에서 "GDB : Running ....."입니다. 터미널에서 똑같은 명령을 시도해도 문제가 없다는 것을 언급해야합니다.

답변

1

에 의해 바이트 하나를보고, 이것을 시도 것입니다. 대신과 같이 -[NSFileManager moveItemAtPath:toPath:error:]를 사용

/* Find the user's Desktop directory. */ 
NSArray *results = NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES/*expandTilde*/); 
if (![results count]) return; 

NSString *parentDir = [results objectAtIndex:0U]; 

/* Build the source path in a platform-independent manner. */ 
/* -pathWithComponents: will use the separator ('/', '\', or ':') 
* appropriate for the platform. */ 
NSArray *srcParts = [NSArray arrayWithObjects:@"/", @"Volumes", @"Public", @"Directory*", (void *)nil]; 
NSString *src = [NSString pathWithComponents:srcParts]; 

/* Build the destination path. */ 
NSString *fnam = [src lastPathComponent]; 
NSString *dest = [parentDir stringByAppendingPathComponent:fnam]; 

/* Move |src| to |dest|. */ 
NSFileManager *fm = [NSFileManager defaultManager]; 
NSError *error = NULL; 
BOOL ok = [fm moveItemAtPath:src toPath:dest error:&error]; 
if (!ok) { 
    [[NSApplication sharedApplication] presentError:error]; 
} 

당신이, 플랫폼 독립적, 당신은 단지 srcdest 인수를 하드 코딩 할 수있는 신경 직접 이동을 수행하고, 75 %가이 단축하지 마십시오.

이 아닌은 "디렉토리 *"라는 디렉토리가있을 것으로 예상됩니다. 여기서 별표는 디렉토리 이름의 마지막 부분입니다. <glob.h>에 정의 된 glob()을 사용하여 직접 globbing을 처리 할 수 ​​있습니다.

0

Objective-C를 모르겠지만 무엇을 system()으로 전달합니까?

난 그냥 system()를 사용하지 마십시오 하나

NSString *searchCommand = [[NSString alloc] initWithFormat:@"cp -R /Volumes/Public/Directory* Desktop/"]; 

    const char* system_call = [searchCommand UTF8String]; 
    const char *ptr = system_call; 
    while (*ptr) printf("%02X ", *ptr++); 
    puts(""); 
관련 문제