Saya ingin menyimpan file sebagai /a/b/c/d.txt, tetapi saya tidak tahu apakah salah satu direktori ini ada dan perlu membuatnya secara rekursif jika perlu. Bagaimana seseorang bisa melakukan ini di ruby?
101
Penggunaan mkdir_p
:
FileUtils.mkdir_p '/a/b/c'
Ini _p
adalah sisa unix untuk induk / jalur Anda juga dapat menggunakan alias mkpath
jika itu lebih masuk akal bagi Anda.
FileUtils.mkpath '/a/b/c'
Di Ruby 1.9 FileUtils telah dihapus dari inti, jadi Anda harus melakukannya require 'fileutils'
.
FileUtils
danPathname
mungkin yang alat yang paling penting untuk Ruby shell scripting.Gunakan mkdir_p untuk membuat direktori secara rekursif
sumber
Jika Anda menjalankan pada mesin unixy, jangan lupa Anda selalu dapat menjalankan perintah shell di bawah ruby dengan menempatkannya di backticks.
sumber
File.makedirs
sumber
mkdir_p
danmkpath
ruby-doc.org/stdlib-2.6.5/libdoc/fileutils/rdoc/…Pathname untuk menyelamatkan!
sumber
FileUtils.mkdir_p '/a/b/c'
+ membuatd.txt
pada saat yang sama?Pathname('/a/b/c/d.txt').dirname.mkpath
danFile.write('/a/b/c/d.txt', content)
tanpafilename = '/a/b/c/d.txt'.rpartition('/').last
dan sisa penguraianAnda juga bisa menggunakan logika Anda sendiri
Jadi jika path adalah 'tmp / a / b / c' jika 'tmp' tidak ada 'tmp' dibuat, maka 'tmp / a /' dan seterusnya dan seterusnya.
sumber