Chcę zapisać plik jako /a/b/c/d.txt, ale nie wiem, czy któryś z tych katalogów istnieje i trzeba go rekurencyjnie utworzyć w razie potrzeby. Jak to zrobić w ruby?Jak tworzyć katalogi rekursywnie w Ruby?
Odpowiedz
require 'ftools'
Dzięki za wskazówkę! Dokumenty wydają się preferować FileUtils.mkdir_p, więc wziąłem to ... – Jan
Jeśli używasz komputerów z obsługą systemu Unix, nie zapomnij, że zawsze możesz uruchomić polecenie powłoki pod ruby, umieszczając je w lewych klawiszach.
`mkdir -p /a/b/c`
Podanie wiersza poleceń dla funkcji, którą można wykonać za pomocą wbudowanej funkcji, nie jest dobre. –
Jest jednak tak pozytywny. –
mkdir_p użytkownika można utworzyć katalogu rekurencyjnie
path = "/tmp/a/b/c"
FileUtils.mkdir_p(path) unless File.exists?(path)
Można również użyć własnej logiki
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
Więc jeśli ścieżka jest 'tmp/a/b/c' jeśli ' tmp "nie istnieje" tworzy się tmp, następnie "tmp/a /" itd.
- 1. Ruby: w jaki sposób rekursywnie znaleźć i usunąć puste katalogi?
- 2. Rekursywnie wyświetlaj katalogi w programie Power Shell
- 3. PHP Rekursywnie usuwaj puste katalogi z iteratorami SPL
- 4. Jak automatycznie tworzyć katalogi za pomocą strumienia danych
- 5. Otwórz niektóre katalogi rekurencyjnie w Dired
- 6. Wyklucz katalogi .svn z grep
- 7. Jak wyświetlić katalogi w TreeView?
- 8. Jak znaleźć zagnieżdżone katalogi?
- 9. Katalogi GitHub wiki
- 10. Jak tworzyć klejnoty?
- 11. Jak znaleźć wszystkie moduły i klasy w module rekursywnie?
- 12. Jak wykonać rekursywnie JS-Beautify?
- 13. Geohashing - rekursywnie znajduj sąsiadów
- 14. Jak rekursywnie zapobiegać wiązaniu AngularJS?
- 15. Jak rekursywnie wywoływać makro w jinja2?
- 16. Jak przechodzić rekursywnie dokument zagnieżdżony w MongoDB
- 17. .gitignore: Jak ignorować zagnieżdżone katalogi?
- 18. Git ignoruje katalogi .git w podkatalogach
- 19. W tym katalogi w Clion
- 20. CMake, jak poprawnie tworzyć zależności między celami
- 21. Jak mogę rekurencyjnie odczytać katalogi w Perlu?
- 22. jak ustawić katalogi MSBuild VC++
- 23. Wywołanie rekursywnie JsonSerializer w JsonConverter
- 24. Rekursywnie concat kolumny w sql
- 25. Jak tworzyć podtypy w Moose?
- 26. Jak tworzyć kategorie w Railsach
- 27. Jak tworzyć obiekty w Perlu?
- 28. Jak tworzyć asercje w R?
- 29. Wyszukiwanie pliku w katalogach rekursywnie
- 30. rekursywnie odwracaj hipotezy w coq
+1. "FileUtils" i "Pathname" są prawdopodobnie * najważniejszymi narzędziami skryptów powłoki Ruby. –