我想将文件存储为/a/b/c/d.txt,但我不知道是否存在这些目录中的任何一个,并且需要时递归创建它们。 在红宝石中如何做到这一点?如何在ruby中递归创建目录?
87
A
回答
164
3
7
如果你在unixy机器上运行,不要忘记你总是可以在ruby下运行一个shell命令,方法是将它置于反引号中。
`mkdir -p /a/b/c`
+1
给一个函数的命令行,你可以使用内置函数做的不好 – 2017-11-20 15:28:30
+0
尽管如此积极。 – 2017-11-21 00:18:18
16
用户mkdir_p创建目录递归
path = "/tmp/a/b/c"
FileUtils.mkdir_p(path) unless File.exists?(path)
0
你也可以用你自己的逻辑
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
所以,如果路径是 'TMP/A/B/C' 如果' tmp'不存在'tmp'被创建,然后'tmp/a /'等等等等。
相关问题
- 1. Ruby创建递归目录树
- 2. 如何在c中为以下要求创建递归目录?
- 3. 如何在Qt中递归创建一个目录?
- 4. 如何使用Bash递归创建不存在的子目录?
- 5. 递归在Python中创建的目录,而跳过现有目录
- 6. Ruby:我如何递归查找和删除空目录?
- 7. 递归创建特定目录中的文件夹
- 8. C中的递归目录
- 9. 在Python中递归地在目录中创建不同大小的文件
- 10. 如何递归安装目录与WAF
- 11. 如何递归移除目录?
- 12. 如何为递归创建的目录编写规范,例如厨师
- 13. 在PowerShell中递归列出目录
- 14. 在Matlab中递归列出目录
- 15. Howto在Meteor中递归移除目录?
- 16. 在go-inotify中观察递归目录
- 17. 递归创建树
- 18. Bash递归地创建目录而没有最后一个
- 19. 如何在%appdata%中创建目录%
- 20. 如何在java swing中创建目录
- 21. 如何在SQL中创建目录?
- 22. 如何在Scripter Automation中创建目录
- 23. 如何在Vim中的目录中递归搜索和替换?
- 24. 如何在s3上使用ruby aws-sdk创建目录结构?
- 25. C目录和子目录递归
- 26. 如何创建分支递归?
- 27. 如何创建递归超时函数
- 28. 如何递归创建jQuery UI droppables?
- 29. 如何创建递归Gradle任务?
- 30. 在Mojolicious中创建递归模板块
+1。 'FileUtils'和'Pathname'可能是最重要的Ruby shell脚本工具。 – 2010-09-10 17:41:27