2012-10-21 6 views
0

database.sqlite3을 열고 싶습니다. 첫째로, 나는 길을 얻을 필요가있다. 그러나 나는이 길을 얻는 방법을 모른다.파일 경로를 얻으려면 어떻게해야합니까?

상대 경로가 필요합니다.

enter image description here

편집 : 나는 NSBundle을 사용하지 않으. 그것은 매우 긴 길을 얻습니다.

/Users/Voloda2/Projects/facebook/database.sqlite3 상대 경로를 가져올 수 있습니까?

EDIT2 : 나는 종종 내 데이터베이스를 변경합니다. 이 작업을 위해 Navicat을 사용합니다. NSBundle을 사용하면 문제가 하나 있습니다. 그것은 프로젝트 폴더에 있지 않았기 때문에 자식 데이터베이스에 대한 색인이 생성되지 않았습니다. 따라서 프로젝트 폴더에 데이터베이스를 배치해야합니다.

직선 경로는 폴더를 프로젝트에 상대 경로이 ../database.sqlite3

상대 경로와 같은 상대 경로 뭔가 /Users/Voloda2/Projects/facebook/database.sqlite3

이다. 상대 경로를 얻을 수 있습니까? 가능하지 않을 수도 있습니다.

+0

이 질문은 downvoted만큼 나쁘지 않습니다. +1하기. –

답변

3

일반적인 OS X/Cocoa 앱을 만들고 있다고 가정하면 Xcode는 데이터베이스 파일을 앱 번들에 복사합니다. 따라서 NSBundle 클래스를 사용하면 쉽게 경로를 얻을 수 있습니다.

NSString *databasePath = [[NSBundle mainBundle] pathForResource:@"database" ofType:@"sqlite3"]; 
+0

H2CO3, 제 의견을 참조하십시오. – Voloda2

+0

@ Voloda2 경로가 '매우 길다'는게 무슨 문제입니까? 이것이 OS X에서 응용 프로그램을 구성하는 방법입니다. ** 또한 상대 경로를 얻기 위해 ** 무엇을하고 싶습니까? 홈 디렉토리로? 앱의 번들 디렉토리에? –

+0

git으로 데이터베이스를 추적하고 싶습니다. 제 edit2를 참조하십시오. – Voloda2

관련 문제