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

标签 ruby windows filesystems ntfs

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

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

最佳答案

你可以试试 sys-filesystem gem:

This is an interface for obtaining filesytem information ala 'df' on Unix, but also works on Windows.

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

关于ruby - 如何确定 Ruby 中路径或文件的文件系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6296906/

相关文章:

c++ - 是否有不搜索短文件名的 Windows FindFirstFile/FindNextFile API 的替代方法?

algorithm - 闪存调度算法?

arrays - 在 Ruby 中构建多维数组

windows - 获取批处理文件中 uuidgen.exe 返回的值

ruby assert_equal 未定义方法 'downcase' for 0..13 :Range

java - Powershell 与 Batch - Java 命令行

windows - Windows 中的 exe 签名是什么?

android - 在 Android 4.2.2 上安装 libhoudini(ARM 仿真)。模拟器

ruby-on-rails - 使用 Rails.cache.write 设置原始值

html - 使用 Ruby 删除某些 HTML 标签