假设你被交给一个开放的File
对象,但你不知道它打开了什么类型的模式(例如'r','w','w +')。
您将如何确定文件的打开模式?
据我所知,这方面没有IO
方法,但我可能会遗漏一些东西。
如果有必要为每种模式编写单独的测试,那么理想情况下它将是单个方法或一个不会修改指针位置(或文件内容)的if
语句。
答案 0 :(得分:2)
您可以尝试以下任何一项:
将单个字符写入文件描述符,然后取消查找;如果你成功,你就处于写入模式,否则你会引发异常。
尝试并收集fstat
方法的信息。
答案 1 :(得分:-1)
Ruby File对象具有以下方法:
File(filename).readable?
File(filename).writeable?
File(filename).executeable?