2011-02-16 4 views
37

/source.txt에 파일이 있고이 파일을 /a/b/c.txt에 복사하고 싶습니다. /a/a/b이 존재할 수도 있고 존재하지 않을 수도 있습니다.Ruby에서 필요에 따라 디렉토리를 작성하여 파일을 복사하십시오.

파일을 복사하고 필요한 경우 필요한 상위 디렉토리를 만드는 방법이 있습니까?

이상적으로 이것은 하나의 명령입니다. 특히, 대상 경로의 파일/디렉터리 부분을 구문 분석하지 않고 수동으로 FileUtils.mkdir_pFileUtils.cp을 호출하는 것을 피하고 싶습니다.

순수한 루비가 선호되지만, 레일즈 의존적 인 솔루션이 허용됩니다.

+1

왜 한 명령에서 그렇게하고 싶습니까? 대부분의 파일 시스템은 그렇게 작동합니다. 파일을 넣기 전에 디렉토리가 필요합니다. 2 ~ 3 건 통화에 문제가 있습니까? – xinit

+0

1 개의 호출이 2보다 간단합니다. * 1 호출에서 * 할 수 없다면 괜찮습니다. –

답변

83

일반적으로 대상 디렉토리 경로가 존재하는지 확인해야합니다. 따라서 내장 명령이 찾고있는 것을 수행하는지 의심 스럽습니다.

그러나 FileUtils.mkdir_p(dir)을 사용하면 특히 경로를 구문 분석하는 데 File.dirname()을 사용하면 매우 간단 할 수 있습니다. 예를 들어 유틸리티 루틴으로 포장 할 수도 있습니다. 예 :

관련 문제