0

假设您收到一个打开的File对象,但您不知道它是以什么类型的模式打开的(例如'r'、'w'、'w+')。

您将如何确定文件以哪种模式打开?

据我所知,没有IO办法解决这个问题,但我可能会遗漏一些东西。

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

4

2 回答 2

2

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

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

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

于 2012-12-05T03:44:18.310 回答
-1

Ruby File 对象具有以下方法:

File(filename).readable?
File(filename).writeable?
File(filename).executeable?
于 2012-12-05T03:40:12.507 回答