Experimental

Esto es un tecnología experimental
Verifique cuidadosamente la tabla de compatibilidad del navegador antes de usarlo en producción.

los FileSystemDirectoryEntry método de la interfaz getDirectory() devuelve un FileSystemDirectoryEntry objeto correspondiente a un directorio contenido en algún lugar dentro del subárbol del directorio enraizado en el directorio en el que se llama.

Sintaxis

FileSystemDirectoryEntry.getDirectory([path][, options][, successCallback][, errorCallback]);

Parámetros

pathOpcional
A USVString que representa una ruta absoluta o una ruta relativa al directorio en el que se llama al método, y describe qué entrada de directorio devolver. Es posible que no se puedan utilizar rutas absolutas por motivos de seguridad.
optionsOpcional
Un objeto basado en el FileSystemFlags diccionario, que le permite especificar si crear o no la entrada si falta y si es un error si el archivo ya existe. Actualmente, estas opciones no son útiles en contextos web.
successCallbackOpcional
Un método que se llamará una vez FileSystemDirectoryEntry Ha sido creado. El método recibe un solo parámetro: el FileSystemDirectoryEntry objeto que representa el directorio en cuestión.
errorCallbackOpcional
Un método al que se llamará si se produce un error. Recibe como único parámetro de entrada un FileError objeto que describe el error que ocurrió.

Valor devuelto

undefined.

Errores

Si ocurre un error y una errorCallback se especificó, se llama con un solo parámetro: un FileError objeto que describe el error. los FileError.code especifica qué tipo de error ocurrió, de la siguiente manera:

FileError.NOT_FOUND_ERR
los create La opción no se especificó (o se especificó como false) y el directorio no existe.
FileError.PATH_EXISTS_ERR
los create y exclusive las opciones eran ambas true, que indica que el directorio debe crearse pero no debe existir ya, pero el directorio de hecho ya existe.
FileError.SECURITY_ERR
La solicitud de acceso al directorio fue denegada por razones de seguridad.
FileError.TYPE_MISMATCH_ERR
La ruta especificada no es un directorio; probablemente sea un archivo, pero podría ser un descriptor de archivo no compatible, como una tubería; esto depende en cierta medida del agente de usuario.

FileSystemFlags

los options parámetro es un objeto que se basa en el FileSystemFlags diccionario; proporciona banderas que permiten ajustar el comportamiento de la getDirectory() método.

createOpcional
Si esta propiedad es truey el archivo o directorio solicitado no existe, el agente de usuario debe crearlo. El valor predeterminado es false. El directorio principal ya debe existir.
exclusiveOpcional
Si true, y el create la opción también es true, el archivo no debe existir antes de emitir la llamada. En cambio, debe ser posible que se cree nuevamente en el momento de la llamada. El valor predeterminado es false.

Valores y resultados

La siguiente tabla describe el resultado de cada combinación posible de estos indicadores dependiendo de si el archivo de destino o la ruta del directorio ya existe o no.

Valores de opción Condición de archivo / directorio Resultado
create exclusive
false n / A[1] La ruta existe y coincide con el tipo deseado (dependiendo de si la función llamada es getFile() o getDirectory() los successCallback se llama con un FileSystemFileEntry si getFile() fue llamado o un FileSystemDirectoryEntry si getDirectory() fue llamado.
false n / A[1] La ruta existe pero no coincide con el tipo deseado los errorCallback se llama con un código de error apropiado (si se proporcionó la devolución de llamada).
true false El camino existe El archivo o directorio existente se elimina y se reemplaza por uno nuevo, luego successCallback se llama con un FileSystemFileEntry o un FileSystemDirectoryEntry, según sea apropiado.
true false La ruta no existe Se crea el archivo o directorio, luego FileSystemFileEntry o un FileSystemDirectoryEntry se pasa al successCallback, según sea apropiado.
true true El camino existe los errorCallback se llama con un error apropiado, como FileError.PATH_EXISTS_ERR.
true true La ruta no existe Se crea el archivo o directorio, luego FileSystemFileEntry o un FileSystemDirectoryEntry se pasa al successCallback, según sea apropiado.

[1] Cuando create es false, El valor de exclusive es irrelevante e ignorado.

Ejemplo

En este ejemplo, se presenta una función cuyo trabajo es ubicar dentro del directorio de datos de la aplicación de un usuario un archivo JSON que contiene un diccionario de usuario para un idioma específico y luego cargar ese diccionario.

let dictionary =null;functionloadDictionaryForLanguage(appDataDirEntry, lang)
  dictionary =null;

  appDataDirEntry.getDirectory("Dictionaries",,function(dirEntry)
    dirEntry.getFile(lang +"-dict.json",,function(fileEntry)
      fileEntry.file(function(dictFile))let reader =newFileReader();

        reader.addEventListener("loadend",function()
          dictionary =JSON.parse(reader.result););

        reader.readAsText(dictFile););););

los loadDictionaryForLanguage() la función comienza usando getDirectory() para obtener el FileSystemDirectoryEntry objeto que representa una subcarpeta llamada “Diccionarios” ubicada dentro del directorio de datos de la aplicación especificado. La devolución de llamada exitosa para esto toma el objeto de entrada de directorio resultante y llama getFile() conseguir un FileSystemFileEntry objeto que representa el archivo del diccionario; la devolución de llamada de éxito para esto, a su vez, crea una nueva FileReader y lo usa para cargar el contenido del archivo. Cuando se carga con éxito (como lo indica el loadend evento que se dispara), el texto cargado se pasa a JSON.parse() para ser reconstituido en un objeto JavaScript.

Especificaciones

Especificación Estado Comentario
API de entradas de archivos y directorios
La definición de ‘getDirectory ()’ en esa especificación.
Borrador Especificación inicial.

Compatibilidad del navegador

Escritorio Móvil
Cromo Borde Firefox explorador de Internet Ópera Safari WebView Android Chrome Android Firefox para Android Opera Android Safari en IOS Internet de Samsung
getDirectory 8 79 50 En Firefox, el errorCallbackEl parámetro de entrada es un DOMException preferible a FileError objeto. No No 11,1 ≤37 18 50 En Firefox, el errorCallbackEl parámetro de entrada es un DOMException preferible a FileError objeto. No 11,3 1.0

Ver también

  • API de entradas de archivos y directorios
  • Introducción a la API del sistema de archivos
  • FileSystemDirectoryEntry