홈 디렉토리에 폴더를 만드는 방법은 무엇입니까?
-
28-10-2019 - |
문제
디렉터리 path = "$HOME/somedir"
를 만들고 싶습니다.
boost::filesystem::create_directory(path)
를 사용해 보았지만 실패했습니다. 분명히이 함수는 시스템 변수를 확장하지 않습니다.
가장 간단한 방법은 무엇입니까?
(참고 : 제 경우에는 path
문자열이 일정하며 변수가 포함되어 있는지 확실하지 않습니다.)
편집 : 저는 Linux에서 작업 중입니다 (하지만 가까운 장래에 내 앱을 Windows로 이식 할 계획이지만).
해결책
getenv 를 사용하여 HOME
를 포함한 환경 변수를 가져옵니다. 존재하는지 확실하지 않은 경우 문자열을 파싱하여 찾아야합니다.
시스템 쉘과 echo를 사용하여 쉘이이 작업을 수행하도록 할 수도 있습니다.
Getenv는 이식 가능합니다 (표준 C에서). 그러나 쉘을 사용하여 이식 가능하게하는 것은 * nix와 Windows 사이에서 더 어려울 것입니다. 환경 변수에 대한 규칙은 * nix와 Windows 간에도 다르지만 아마도 문자열은 주어진 플랫폼에 대해 수정할 수있는 구성 매개 변수 일 것입니다.
임의의 환경 변수가 아닌 확장 홈 디렉토리 만 지원해야하는 경우 ~
규칙을 사용한 다음 구성 문자열에 ~/somedir
를 사용할 수 있습니다.
라코 디스
이 동작은 Python의 os.path에서 복사됩니다. .expanduser , 단 현재 사용자 만 처리합니다. USERPROFILE
, HOMEDRIVE
및 HOMEPATH
가 Linux에서 설정 될 가능성이 낮더라도 다른 환경 변수를 맹목적으로 시도하는 대신 대상 플랫폼을 확인하여 플랫폼에 구애받지 않는 시도를 개선 할 수 있습니다.
다른 팁
내 머리 위로 라코 디스