2012-04-19 4 views
1

osx 용 Xcode 4 응용 프로그램이 있습니다. 내 프로그램에는 plist 파일을 읽고 쓸 필요가있는 곳이 있습니다. 현재 나는/사용자/내 이름/바탕 화면/문서 plist의 이름 파일 경로를 사용했습니다. 그러나 자연스럽게 응용 프로그램으로 응용 프로그램을 만들고 다른 컴퓨터로 전송하면 파일을 찾아서 읽을 수 없습니다. 모든 컴퓨터에서 작동하도록 파일 경로를 만들어야합니다. 아래 파일 경로는 다음과 같습니다.균일 한 파일 경로 설정

filepath = @"/Users/Gautambir/Desktop/CustomerNames.plist" 

답변

2

절대 하드 코드 경로를 사용하지 마십시오. 이렇게하려면 various APIs을 사용하여 경로를 구성해야합니다.

유효한 경로를 구성하는 방법에는 여러 가지가 있습니다. 예를 들어,이 작품 : 또는

NSString* filePath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop"] stringByAppendingPathComponent:@"CustomerNames.plist"]; 

, 당신은 사용할 수 있습니다

NSString* filePath = [@"~/Desktop/CustomerNames.plist" stringByExpandingTildeInPath]; 

을이이 경로를 구축하는 등의 바탕 화면과 같은 특별한 위치에 액세스하는 올바른 방법이 있지만, 문서 폴더 또는 응용 프로그램 지원 폴더를 사용하려면 NSSearchPathForDirectoriesInDomains() 함수 또는 NSFileManager 메서드 URLsForDirectory:inDomains: 또는 URLForDirectory:inDomain:appropriateForURL:create:error:을 사용해야합니다.

이러한 URL 기반 방법은 항상 해당 경로 기반의 방법보다 우선해야합니다. Apple은 모든 개발자가 가능한 한 빨리 URL 기반 방법을 지원하도록 권장합니다.

주로 파일 URL에 북마크 데이터를 저장할 수 있기 때문에 파일이 이동해도 URL은 해결할 수 있습니다. 경로는 단지 문자열이며 메타 데이터를 저장할 수 없기 때문에 경로가있는 경우에는 해당되지 않습니다.

NSFileManager* fm = [NSFileManager defaultManager]; 
NSURL* desktopURL = [fm URLForDirectory:NSDesktopDirectory 
          inDomain:NSUserDomainMask 
        appropriateForURL:nil 
         shouldCreate:NO 
           error:nil]; 

NSURL* fileURL = [desktopURL URLByAppendingPathComponent:@"CustomerNames.plist"]; 
+0

가 감사 : 여기

당신이 당신의 URL을 찾기 위해 파일 관리자를 사용하십시오 방법입니다. 매력처럼 일했다. :) – GBSingh