2012-06-12 4 views
7

나는 시도했다 :Xcode에서 사용자 데스크톱의 경로를 어떻게 구합니까?

path = @"~/Desktop/files/text.plist"; 
NSDictionary *aDict = [NSDictionary dictionaryWithContentsOfFile:path]; 

ResultPath : ~/바탕 화면/파일/text.plist

path = @"$(HOME)/Desktop/files/text.plist"; 
NSDictionary *aDict = [NSDictionary dictionaryWithContentsOfFile:path]; 

ResultPath : $ (HOME) /Desktop/files/text.plist

path = [NSHomeDirectory() stringByAppendingString:@"/Desktop/files/text.plist"]; 
NSDictionary *aDict = [NSDictionary dictionaryWithContentsOfFile:path]; 

ResultPath :/사용자/my_name/라이브러리/응용 프로그램 지원/iPhone 시뮬레이터/5.1/응용 프로그램/639DC66A-7092-4ECB-9E48-59935AC1C394/데스크톱/파일/text.plist

  1. XCode에서 사용자의 데스크톱 경로로 이동할 수있는 방법이 있습니까?
  2. 위의 예제에서 환경 변수를 사용할 수 있습니까?

EDIT : 두 번째 질문에 대한 추가 설명 : MAC 콘솔에 환경 변수 (또는 매크로)가있는 것처럼 코드 내에서 사용할 수 있습니까? 그것들을 사용할 수 있다면, 어느 누구도 예제를 도울 수 있습니까? 은 $ HOME_DIRECTORY 또는 이와 유사한 것입니다.

+2

iOS 응용 프로그램을 작성한 것으로 보입니다. iOS에는 바탕 화면이 없으므로 여기에 오기를 기대하고 있습니다. – duskwuff

+3

이 코드가 Xcode와 어떤 관련이 있는지 실제로 알지 못합니다 ... –

+1

@duskwuff 시뮬레이터에서 실행되는 iOS 앱을 작성하고 있습니다. * (예, 테스트 환경을 생각하는 앱이 있습니다.) 따라서 Mac에서 사용자의 데스크톱 경로를 가져와야합니다. –

답변

21

당신은 검색 경로에서 바탕 화면을 지정할 수 있습니다

NSArray * paths = NSSearchPathForDirectoriesInDomains (NSDesktopDirectory, NSUserDomainMask, YES); 
NSString * desktopPath = [paths objectAtIndex:0]; 
이런 식으로 일을의 장점은 방법에 대해 어떠한 가정도하지 않는다는 것이다

사용자가 Mac을 구성했습니다. 바탕 화면 폴더가 기본 위치에 있지 않은 경우에도 올바른 위치를 찾습니다.

+0

iOS 8 및 Xcode 6의 경우, Apple이 몇 가지 사항을 변경 한 것으로 보이며 Mac 사용자의 데스크톱이 아닌 존재하지 않는 경로가 생성됩니다./Users/username/Library/Developer/CoreSimulator/Devices/C4BE4D04-304E-44EF-8665-B2DF0AE75EBC/data/컨테이너/데이터/응용 프로그램/167E7298-E774-4CFF-B252-F61AC60E9027/Desktop' – newenglander

+0

@newenglander 샌드 박스 파일 시스템으로 인해 iOS 기기의 '데스크톱'폴더 앱이 시뮬레이터에서 실행 중이므로 시뮬레이터의 데스크톱 버전이 표시됩니다. 실제 장치에서 동일한 코드를 실행하고이 "Desktop"폴더에 파일을 넣으십시오. 오류 메시지를 기록하십시오. – Abizern

-2

이것은 당신의 # 1 질문을 위해 그것을 수행해야합니다

NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString* documentsDirectoryPath = [paths objectAtIndex:0]; 

당신이 더 두 번째 질문을 설명 할 수 있습니까? :)

+0

이 답변은 작동하지 않는 것 같습니다. 그것은 제가 위에서 시도한 세 번째 옵션과 같은 경로를 제공합니다. –

+0

두 번째 부분을 설명하는 편집을했습니다. –

+3

문서 폴더 ≠ 데스크톱 폴더 –

1

이 작동합니다 :

NSString *pathToDesktop = [NSString stringWithFormat:@"/Users/%@/Desktop/text.txt", NSUserName()]; 
+0

감사합니다. 공장. –

+0

여기서는 Desktop 폴더가 특정 위치에 있다고 가정합니다. 사용자가 그것을 바꿀 수 있고, 그러면 이것은 깨질 것이다. – Abizern

+0

@Abizern - 바탕 화면을 다른 위치로 옮길 수는 있지만,/Users/your_name/Desktop에 별칭이 있으므로 항상이 방법을 사용할 수 있습니다. – pasawaya

1

이 문을 사용하면 Desktop 폴더가 일반적인 위치에 있다고 가정합니다.

관련 문제