File io 如何测试是否可以写入文件名?
标题可能看起来微不足道,但这并不像听起来那么容易。您不能只检查文件的权限,因为该文件可能不存在,并且您可能具有创建该文件然后写入该文件所需的权限。但前提是您对该目录具有写入权限,可能具有执行权限,也可能具有对所有父目录的权限。也许不是。我不确定File io 如何测试是否可以写入文件名?,file-io,file-permissions,directory-permissions,File Io,File Permissions,Directory Permissions,标题可能看起来微不足道,但这并不像听起来那么容易。您不能只检查文件的权限,因为该文件可能不存在,并且您可能具有创建该文件然后写入该文件所需的权限。但前提是您对该目录具有写入权限,可能具有执行权限,也可能具有对所有父目录的权限。也许不是。我不确定 那么,给定一个文件名,为了正确测试是否可以使用该文件名打开和写入文件,我需要说明哪些情况?这不是特定于任何一种编程语言的。我只想知道逻辑。但真正的编程语言中的示例是受欢迎的。这样的测试不一定非常有用——您只是在设置自己 对于竞争条件,如果文件在检查之间由
那么,给定一个文件名,为了正确测试是否可以使用该文件名打开和写入文件,我需要说明哪些情况?这不是特定于任何一种编程语言的。我只想知道逻辑。但真正的编程语言中的示例是受欢迎的。这样的测试不一定非常有用——您只是在设置自己 对于竞争条件,如果文件在检查之间由于某种原因变得不可写入 以及写入尝试。(其他一些进程可能会更改权限、移动或删除 父目录,用完设备上最后的可用空间等。) 我会继续尝试写,并认真检查错误 在每一步(打开、每次写入尝试、关闭),可以想象操作可能会 失败
如果文件成功退出,您知道您可以写入特定的文件名,为什么不尝试触摸该文件呢。如果它以错误代码退出,您知道您不能。这似乎是最简单的方法。如果不需要,您可以直接删除该文件。如果该文件不存在,触摸不会返回任何错误,它会创建一个零大小的新文件,您无法通过这种方式确定!