code

fileExistsAtPath : 존재하는 파일에 대해 NO 반환

codestyles 2020. 11. 20. 08:59
반응형

fileExistsAtPath : 존재하는 파일에 대해 NO 반환


내 코드 fileExistsAtPath :의 시점에서 내가 존재한다고 확인한 파일에 대해 NO를 반환합니다. 나는 이것에 내 머리를 긁적이며 왜 작동하지 않는지 알 수 없으므로이 디렉토리가 절대적으로 존재하지만 어쨌든 생성되지 않으면이 코드로 변경했습니다.

NSError* err = nil;
NSURL *dir = [[NSFileManager defaultManager] URLForDirectory:NSApplicationSupportDirectory
                                                       inDomain:NSUserDomainMask
                                              appropriateForURL:nil   
                                                         create: YES
                                                          error:&err];
BOOL exists = [[NSFileManager defaultManager] fileExistsAtPath:[dir absoluteString]];

이 코드를 실행하면 응용 프로그램 디렉토리 폴더가 존재하고 오류는 0이지만 존재는 NO입니다.

어떻게 이럴 수있어?

TIA


당신은 사용해야 [dir path]하지 [dir absoluteString].


나는 몇 시간 동안 벽에 머리를 부딪혔다. xcode에서 실행될 때마다 앱 디렉토리 경로가 변경되었습니다. 그것의 UUID 부분. 따라서 전체 경로를 저장하는 대신 경로 접미사를 유지하고 임시, 캐시 또는 문서와 같은 어떤 스토리지 클래스를 의미하든 접두사를 붙였습니다.


경로와 URL에는 차이가 있습니다. 유닉스 표현의 경로는 특정 파일이나 디렉토리가 존재하는 위치입니다. 처럼"/Users/username/Desktop/myfile.txt"

URL에는 위치뿐만 아니라 스키마도 포함됩니다 (예 : http : // 또는 https : // 및 우리의 경우 파일 URL) (file:///Users/username/Desktop/myfile.txt)

URL이 아닌 매개 변수의 경로 와 같 fileExistsAtPath거나 removeItemAtPath필요한 메소드 .

같은 방법 copyItemAtURL:toURL:error:(NSError * _Nullable *)error은 URL을 기대합니다.

개체의 path속성을 사용 NSURL하여 경로를 검색합니다. absoluteString계획과 함께 경로를 제공합니다.

참고 URL : https://stackoverflow.com/questions/9303875/fileexistsatpath-returning-no-for-files-that-exist

반응형