Code 상에서 현재 current directory path를 구하는 법을 알수있을까요?

간단한 문제인줄 알았는데, 아래 코드처럼 수행하면 현재 프로젝트 폴더경로가 아닌, 시스템 루트 경로가 나오는 것 같습니다. 팀원들이 각자 다른 디렉터리 구조에서 작업을 할텐데 현재 프로젝트 파일의 path를 어떻게 구하면 될까요? (로컬 데이터베이스를 SQLite로 구성하였고, 만들어논 .db파일을 git폴더내에 넣어두고 사용하고 싶습니다.)

let fileManager = FileManager.init()
print(fileManager.currentDirectoryPath)
좋아요 1

전통의…

NSHomeDirectory() 를 써 보세요~

아마도 스위프트에서는 앞에 NS 가 빠질지도… :wink:

참고로, 맥에서 저 함수를 쓰면, 로그인 유저의 홈 경로가… 쿨럭;;;

좋아요 1

빠른 답변 감사드려요! 해당 함수를 사용해보았더니, 어플이 수행되고 있는 디바이스의 경로가 나오는 것 같습니다! 나중에 배포할 때는 이 함수를 사용하면 될 것 같은데, 개발 과정에서 git에 DB파일을 올려놓고 사용하기 위하여 필요한 현재 프로젝트의 위치를 반환하는 함수가 있을까요?

좋아요 1

프로젝트에 추가해서 함께 번들된다면 Bundle로 접근합니다. 앱과 함께 배포되는 방식이죠. 편하기는 하지만 앱이 동작하면서 Bundle에 속한 파일을 수정할 수 없어요.

let path = Bundle.main.path(forResource: "myDataBase", ofType: "db")

사용자가 수정할 수 있는 파일은 Documents 폴더에 저장합니다. 즉 앱이 동작하면서 추가/삭제/수정하는 상황인 경우에 사용합니다.

let docPath = NSHomeDirectory() + "/Documents"

앱과 함께 배포되면서 앱이 동작하면서 수정가능해야 한다? 앱이 처음 시작하면서 번들에서 Documents 폴더로 복사해서 사용합니다.

좋아요 1

댓글 작성 중에 다른 질문이 올라왔네요.

git에 데이터베이스 파일이 있으면, 앱이 동작하면서 다운로드 받으면 되겠네요. 다운로드 경로는 Documents로 하면 될테고요.

좋아요 1