Risposte:
Se stai girando su macchine unixy, non dimenticare che puoi sempre eseguire un comando di shell sotto ruby inserendolo in backtick.
`mkdir -p /a/b/c`
Pathname in soccorso!
Pathname('/a/b/c/d.txt').dirname.mkpath
FileUtils.mkdir_p '/a/b/c'
+ creare d.txt
allo stesso tempo?
Pathname('/a/b/c/d.txt').dirname.mkpath
e File.write('/a/b/c/d.txt', content)
senza filename = '/a/b/c/d.txt'.rpartition('/').last
e il resto dell'analisi
Potresti anche usare la tua logica
def self.create_dir_if_not_exists(path)
recursive = path.split('/')
directory = ''
recursive.each do |sub_directory|
directory += sub_directory + '/'
Dir.mkdir(directory) unless (File.directory? directory)
end
end
Quindi se il percorso è "tmp / a / b / c" se "tmp" non esiste, viene creato "tmp", allora "tmp / a /" e così via.
FileUtils
ePathname
sono probabilmente gli strumenti più importanti per lo scripting della shell Ruby.