如何在Ruby中确定路径或文件的文件系统?

时间:2011-06-09 17:31:52

标签: ruby windows filesystems ntfs

我需要在Windows上创建安全的文件名(支持外语字符)。一些开发环境是Mac,其他是Windows。我们的自动化测试在Windows机器上运行,应用程序安装在Windows机器上。文件系统对什么构成合法文件名(特别是像&lt ;,>,“这样的字符和路径分隔符在NTFS上是非法的)强加了自己的规则。

我想编写一些实际测试文件系统本身的测试。我试图不要模拟测试,因为那时我并没有真正测试真实系统中的任何东西,只是验证代码处理模拟的异常。测试需要至少在Mac上运行(如果他们只是在Mac出现时跳过测试就可以了),但我也想知道测试运行的是哪种类型的文件系统。 NTFS与Fat32不同。注意:我不是要求安全文件名方法的实现,我已经有了。我问在Ruby中是否有任何方法可以确定我当前所处的文件系统,以用于测试目的。多次搜索以及File,FileUtils,Dir甚至ENV的文档都没有显示任何内容。

1 个答案:

答案 0 :(得分:1)

您可以尝试sys-filesystem gem:

  

这是获取的界面   filesytem information ala'df'on   Unix,但也适用于Windows。

irb(main):001:0> require 'sys/filesystem'
=> true
irb(main):006:0> Sys::Filesystem.stat("D:\\").base_type
=> "NTFS"