programing

디렉토리가 Ruby와 함께 있지 않은 경우 디렉토리 만들기

bestprogram 2023. 6. 6. 10:23

디렉토리가 Ruby와 함께 있지 않은 경우 디렉토리 만들기

다음 코드로 디렉터리를 만들려고 합니다.

Dir.mkdir("/Users/Luigi/Desktop/Survey_Final/Archived/Survey/test")
    unless File.exists?("/Users/Luigi/Desktop/Survey_Final/Archived/Survey/test")  

그러나 다음 오류가 발생했습니다.

해당 파일 또는 디렉토리 없음 - /Users/Luigi/Desktop/Survey_Final/Archived/Survey/test(오류 번호:ENONT)

이 디렉터리가 에서 생성되지 않는 이유는 무엇입니까?Dir.mkdir위의 진술?

중첩된 디렉토리를 작성하려고 할 수 있습니다.가정하면foo존재하지 않습니다, 당신은 받게 될 것입니다.no such file or directory오류:

Dir.mkdir 'foo/bar'
# => Errno::ENOENT: No such file or directory - 'foo/bar'

중첩된 디렉토리를 한 번에 작성하려면,FileUtils필요:

require 'fileutils'
FileUtils.mkdir_p 'foo/bar'
# => ["foo/bar"]

편집2: 사용할 필요가 없습니다.FileUtils시스템 호출을 수행할 수 있습니다(@mu로부터의 업데이트는 너무 짧은 설명입니다).

> system 'mkdir', '-p', 'foo/bar' # worse version: system 'mkdir -p "foo/bar"'
=> true

그러나 일부 시스템에서는 사용할 수 없는 외부 '도구'를 사용하는 것만큼 (적어도 내가 보기에는) 더 나쁜 접근 방식으로 보입니다.mkdir하지만 누가 알겠어요).

간단한 방법:

directory_name = "name"
Dir.mkdir(directory_name) unless File.exists?(directory_name)

또 다른 간단한 방법:

Dir.mkdir('tmp/excel') unless Dir.exist?('tmp/excel')

그냥.Dir.mkdir('dir') rescue nil?

언급URL : https://stackoverflow.com/questions/19280341/create-directory-if-it-doesnt-exist-with-ruby