如何测试打开Ruby文件的模式类型?

时间:2012-12-05 03:32:28

标签: ruby file-io io

假设你被交给一个开放的File对象,但你不知道它打开了什么类型的模式(例如'r','w','w +')。

您将如何确定文件的打开模式?

据我所知,这方面没有IO方法,但我可能会遗漏一些东西。

如果有必要为每种模式编写单独的测试,那么理想情况下它将是单个方法或一个不会修改指针位置(或文件内容)的if语句。

2 个答案:

答案 0 :(得分:2)

您可以尝试以下任何一项:

  • 将单个字符写入文件描述符,然后取消查找;如果你成功,你就处于写入模式,否则你会引发异常。

  • 尝试并收集fstat方法的信息。

答案 1 :(得分:-1)

Ruby File对象具有以下方法:

File(filename).readable?
File(filename).writeable?
File(filename).executeable?