2011-06-09 59 views
1

我需要在Windows上创建安全文件名(支持外文字符)。一些开发环境是Mac和其他Windows。我们的自动化测试在Windows机器上运行,并且应用程序安装在Windows机器上。文件系统对合法文件名(特别是字符如<,>,以及NTFS上的路径分隔符是非法的)施加了他们自己的规则如何确定Ruby中的路径或文件的文件系统?

我想写一些实际测试文件系统的测试, m试图不嘲笑测试,因为那样我就没有在真正的系统中测试任何东西,只是验证代码处理嘲讽的异常。测试需要至少在Mac上运行(没关系,如果他们只是在Mac上跳过测试但我也想知道测试运行在哪种类型的文件系统上NTFS不同于FAT32注:我没有要求安全文件名方法的实现,我已经有了,我在问如果在Ruby中有任何方式来确定我当前正在使用哪个文件系统,则可以进行测试。多个搜索以及File,FileUtils,Dir和甚至ENV还没有出现任何东西。

+0

我知道File.join将让你的环境分离器,但它不会出现验证输入:> File.join( “ASDF”, “FDAS”, “&^ * SDFIU” ,“asdf.jpg”) =>“asdf/fdas /&^ * SDFIU/asdf.jpg” – eggie5 2011-06-09 18:11:49

回答

1

您可以尝试sys-filesystem宝石:

这是获得对 Unix的阿拉 '东风' filesytem信息的界面,而且还适用于Windows。

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

感谢您的信息,但似乎没有为我工作。 Mac: 'ruby-1.9.2-p0> Sys :: Filesystem.stat('。')。base_type => nil ruby​​-1.9.2-p0> Sys :: Filesystem.stat('/')。 base_type =>无' 我在Win7旗舰版上的“创建原生扩展”时遇到编译器错误。 – 2011-06-09 19:37:14

+1

对不起,没有任何mac。关于Windows,你有没有安装http://rubyinstaller.org/add-ons/devkit/? – 2011-06-09 19:57:16

+0

是的,我刚刚通过安装ruby安装程序devkit,它似乎安装正确,但仍然编译器错误安装宝石时。反正它可能是一个争论点,因为我们可能不会为所有窗口测试机器做这种安装过程。不管怎么说,多谢拉。 – 2011-06-09 20:08:15

相关问题