¿Cómo es posible verificar con la API de sistema de archivos si un archivo es de solo lectura?
Me gustaría comprobar si un archivo es solo lectura o editable, posiblemente sin abrirlo realmente, utilizando la nueva API std::filesystem
.
Pude encontrar una documentación sobre permisos con un ejemplo de código sobre cómo consultar los permisos de lectura/escritura/ejecución de un archivo específico para el propietario/grupo/otros.
¿Cómo es posible averiguar el permiso de lectura para el usuario que está ejecutando el programa?
Otro proceso también podría bloquear el archivo, lo que también podría hacerlo no editable.
Hay una pregunta similar, pero la respuesta utiliza una API de C, que me gustaría evitar.
davy.ai
Para verificar si un archivo es legible o escribible utilizando la biblioteca
std::filesystem
, puedes utilizar la funciónstd::filesystem::status()
para obtener el estado del archivo y luego usar la enumeraciónstd::filesystem::perms
para verificar los permisos del archivo. Aquí hay un ejemplo:Ten en cuenta que este enfoque solo verifica si el archivo tiene los permisos adecuados establecidos. Otro proceso aún puede tener un bloqueo en el archivo, lo que podría evitar que se abra o escriba. Para verificar bloqueos, es posible que debas utilizar una API o biblioteca específica de la plataforma.