Me cuesta entender si se trata de un error o de una función de la nueva API del sistema de archivos. Al usar showDirectoryPicker y seleccionar el directorio estándar de documentos de Windows o el directorio de descargas, aparece una ventana emergente que indica que no puede abrir la carpeta porque contiene archivos del sistema, lo cual no es así. ¿Alguien ha encontrado una forma de evitar esto, o me estoy perdiendo algo obvio?
Aquí hay un ejemplo completamente funcional:
<!DOCTYPE HTML> <html> <head> <title>File System API</title> </head> <button onclick="checkDirExists();">Initialize</button> <body> </body> <script> async function checkDirExists(){ const homeDirHdl = await window.showDirectoryPicker({ startIn: 'documents', }); if (homeDirHdl){ const draftsDirHdl = await homeDirHdl.getDirectoryHandle('drafts', {create: true}); } } </script> </html>Por diseño, la API de acceso al sistema de archivos excluye la apertura de ciertas carpetas o limita el acceso a ellas. Se enumeran como los llamados directorios conocidos en la especificación. Concretamente, son:
desktop : el directorio del escritorio del usuario, si tal cosa existe. Por ejemplo, podría ser C:\Documents and Settings\username\Desktop , /Users/username/Desktop o /home/username/Desktop .documents : directorio en el que normalmente se almacenarían los documentos creados por el usuario. Por ejemplo C:\Documents and Settings\username\My Documents , /Users/username/Documents o /home/username/Documents .downloads : directorio donde normalmente se almacenarían los archivos descargados. Por ejemplo C:\Documents and Settings\username\Downloads , /Users/username/Downloads o /home/username/Downloads .music : directorio donde normalmente se almacenarían los archivos de audio. Por ejemplo C:\Documents and Settings\username\My Documents\My Music , /Users/username/Music o /home/username/Music .pictures : directorio donde normalmente se almacenarían las fotos y otras imágenes fijas. Por ejemplo C:\Documents and Settings\username\My Documents\My Pictures , /Users/username/Pictures o /home/username/Pictures .videos : directorio donde normalmente se almacenarían videos/películas. Por ejemplo C:\Documents and Settings\username\My Documents\My Videos , /Users/username/Movies o /home/username/Videos . Por lo general, los navegadores también bloquean el acceso a los directorios del sistema como C:\Windows .
La razón por la que estas carpetas están bloqueadas es (i) que impide el acceso a archivos críticos del sistema (una aplicación web no debería poder borrar su carpeta de Windows ) y (ii) que impide que se abuse de los archivos como identificadores (p. ej ., dos aplicaciones independientes que tenido acceso a la carpeta de descargas del usuario podría crear y luego verificar la existencia de un archivo de identificación). Consulte la sección correspondiente de la especificación para obtener más detalles y antecedentes.