Acceso a archivos y permisos (aplicaciones de Windows en tiempo de ejecución)

Applies to Windows and Windows Phone

Las aplicaciones pueden obtener acceso a determinadas ubicaciones del sistema de archivos de manera predeterminada. Las aplicaciones también pueden tener acceso a otras ubicaciones usando el selector de archivos o declarando funcionalidades.

  • Applies to Windows
  • Applies to Windows Phone

Ubicaciones a las que pueden acceder todas las aplicaciones

Al crear una aplicación nueva, puedes obtener acceso a las siguientes ubicaciones del sistema de archivos de manera predeterminada:

  • Directorio de instalación de la aplicación. Carpeta donde está instalada la aplicación en el sistema del usuario.

    Principalmente, existen dos formas de acceder a los archivos y carpetas del directorio de instalación de la aplicación:

    1. Puedes recuperar un StorageFolder que represente el directorio de instalación de la aplicación, como, por ejemplo, así:

      
      
      var installDirectory = Windows.ApplicationModel.Package.current.installedLocation;
      
      

      Tras recuperar un StorageFolder, podrás acceder a los archivos y carpetas del directorio usando métodos de StorageFolder. En el ejemplo, este StorageFolder se almacena en la variable installDirectory. Si descargas la muestra de información del paquete de la aplicación, obtendrás más información sobre cómo trabajar con el paquete de la aplicación y el directorio de instalación.

    2. Puedes recuperar un directorio de archivos del directorio de instalación de la aplicación usando un URI de aplicación como, por ejemplo, así:

      
      
      Windows.Storage.StorageFile.getFileFromApplicationUriAsync("ms-appx:///file.txt").done(
          function(file) {
              // Process file
          }
      );
      
      

      Cuando GetFileFromApplicationUriAsync finalice, devuelve un StorageFile que representa al archivo file.txt en el directorio de instalación de la aplicación (file en el ejemplo).

      El prefijo "ms-appx:///" en el URI hace referencia al directorio de instalación de la aplicación. Obtendrás más información sobre cómo usar URI de aplicación en Usar URI para hacer referencia a contenido.

    Además, y al contrario de lo que sucede con otras ubicaciones, también puedes acceder a los archivos en el directorio de instalación de la aplicación si usas Win32 y COM para las aplicaciones de la Tienda Windows y algunas de las funciones de la biblioteca estándar de C/C++ de Microsoft Visual Studio.

    El directorio de instalación de la aplicación es una ubicación de solo lectura. No se puede usar el selector de archivos para acceder al directorio de instalación.

  • Ubicaciones de datos de la aplicación Carpetas en las que la aplicación puede almacenar datos. Estas carpetas (locales, móviles o temporales) se crean al instalar la aplicación.

    Principalmente, existen dos formas de acceder a los archivos y carpetas de las ubicaciones de datos de la aplicación:

    1. Usa propiedades ApplicationData para recuperar una carpeta de datos de la aplicación.

      Por ejemplo, puedes usar ApplicationData.LocalFolder para recuperar un StorageFolder que represente la carpeta local de la aplicación del siguiente modo:

      
      
      var localFolder = Windows.Storage.ApplicationData.current.localFolder;
      
      

      Si quieres acceder a la carpeta móvil o temporal de la aplicación, usa la propiedad RoamingFolder o TemporaryFolder en su lugar.

      Tras recuperar un StorageFolder que represente una ubicación de datos de la aplicación, podrás acceder a los archivos y carpetas del directorio usando métodos de StorageFolder. En el ejemplo, estos objetos StorageFolder se almacenan en la variable localFolder. Puedes obtener más información sobre cómo usar las ubicaciones de datos de la aplicación si consultas el tema sobre administración de datos de la aplicación y si descargas la muestra de datos de la aplicación.

    2. Por ejemplo, puedes recuperar un archivo directamente de la carpeta local de la aplicación usando un URI de aplicación, así:

      
      
      Windows.Storage.StorageFile.getFileFromApplicationUriAsync("ms-appdata:///local/file.txt").done(
          function(file) {
              // Process file
          }
      );
      
      

      Cuando GetFileFromApplicationUriAsync finalice, devuelve un StorageFile que representa al archivo file.txt en la carpeta local de la aplicación (file en el ejemplo).

      El prefijo "ms-appdata:///local/" en el URI hace referencia a la carpeta local de la aplicación. Para acceder a los archivos de las carpetas móvil o temporal, usa "ms-appdata:///roaming/" o "ms-appdata:///temporary/" en su lugar. Puedes obtener más información sobre cómo usar URI de aplicación en el tema sobre cómo cargar recursos de archivos.

    Además, y al contrario de lo que sucede con otras ubicaciones, también puedes acceder a los archivos en las ubicaciones de datos de la aplicación si usas Win32 y COM para las aplicaciones de la Tienda Windows y algunas de las funciones de la biblioteca estándar de C/C++ de Microsoft Visual Studio.

    No se puede usar el selector de archivos para acceder a las carpetas local, móvil o temporal.

  • Dispositivos extraíbles. Además, la aplicación puede obtener acceso a algunos de los archivos en los dispositivos conectados de manera predeterminada. Esto es una alternativa en caso de que la aplicación use la extensión de reproducción automática para iniciarse automáticamente cuando los usuarios conecten al sistema un dispositivo, como una cámara o una unidad USB. Los archivos a los que la aplicación puede acceder se limitan a los tipos de archivo específicos que se definan a través de declaraciones de asociación de tipo de archivo en el manifiesto de la aplicación.

    Sobra decir que también puedes acceder a los archivos y carpetas en un dispositivo extraíble llamando al selector de archivos (mediante FileOpenPicker y FolderPicker) y permitiendo que el usuario escoja los archivos y carpetas a los que la aplicación pueden tener acceso. En Inicio rápido: acceso a archivos mediante selectores de archivos tienes más información sobre cómo usar el selector de archivos.

    Nota  Para más información sobre cómo acceder a una tarjeta SD desde una aplicación de Windows Phone, consulta Acceso a la tarjeta SD en las aplicaciones de Windows Phone.

  • Applies to Windows

Ubicaciones a las que pueden obtener acceso la mayoría de aplicaciones

  • Carpeta Descargas del usuario. Carpeta donde se almacenan de manera predeterminada los archivos descargados.

    De manera predeterminada, tu aplicación puede acceder únicamente a los archivos y carpetas en la carpeta Descargas del usuario que la aplicación haya creado. No obstante, también puedes acceder a ellos llamando a un selector de archivos (FileOpenPicker o FolderPicker), lo que permite que los usuarios puedan navegar a los archivos o carpetas y seleccionarlos para que la aplicación los utilice.

    • Puedes crear un archivo en la carpeta Descargas del usuario del siguiente modo:

      
      Windows.Storage.DownloadsFolder.createFileAsync("file.txt").done(
          function(newFile) {
              // Process file
          }
      );
      
      

      DownloadsFolder.CreateFileAsync se sobrecarga para que puedas especificar qué debe hacer el sistema en caso de que ya haya un archivo con el mismo nombre en la carpeta. Cuando estos métodos se completen, devuelven un StorageFile que representa el archivo que se ha creado. Este archivo se llama newFile en el ejemplo.

    • Puedes crear una subcarpeta en la carpeta Descargas del usuario del siguiente modo:

      
      Windows.Storage.DownloadsFolder.createFolderAsync("New Folder").done(
          function(newFolder) {
              // Process folder
          }
      );
      
      

      DownloadsFolder.CreateFolderAsync se sobrecarga para que puedas especificar qué debe hacer el sistema en caso de que ya haya una subcarpeta con el mismo nombre en la carpeta. Cuando estos métodos se completen, devuelven un StorageFolder que representa la subcarpeta que se ha creado. Este archivo se llama newFolder en el ejemplo.

    Si creas un archivo o carpeta en la carpeta Descargas, te recomendamos que agregues dicho elemento al FutureAccessList, ya que así la aplicación podrá acceder a él sin problemas en el futuro.

Acceder a más ubicaciones

Aparte de a las ubicaciones predeterminadas, las aplicaciones pueden obtener acceso a otros archivos y carpetas, para lo que es necesario declarar funcionalidades en el manifiesto de la aplicación (consulta Declaraciones de funcionalidades de aplicación), o bien llamar a un selector de archivos para permitir que el usuario elija los archivos y carpetas a los que puede acceder la aplicación (consulta Inicio rápido: acceso a archivos mediante selectores de archivos).

En la siguiente tabla se incluyen otras ubicaciones a las que puedes acceder si declaras una funcionalidad (o varias) y usas la API de Windows.Storage correspondiente:

UbicaciónFuncionalidadAPI Windows.Storage

Documentos

(Solo aplicaciones de la Tienda Windows)

DocumentsLibrary

Nota  Debes incluir en el manifiesto de la aplicación aquellas asociaciones de tipo de archivo que declaren los tipos de archivo concretos a los que la aplicación tiene acceso en esta ubicación.

Usa esta funcionalidad si tu aplicación:

  • Facilita el acceso sin conexión entre plataformas a contenido de OneDrive específico mediante direcciones URL o id. de recurso de OneDrive válidos.
  • Guarda los archivos abiertos en el OneDrive del usuario automáticamente en el modo sin conexión.
KnownFolders.DocumentsLibrary
MúsicaMusicLibrary

Para más información sobre cómo acceder a las bibliotecas multimedia desde una aplicación de Windows Phone, consulta Acceso a bibliotecas multimedia en aplicaciones de Windows Phone.

KnownFolders.MusicLibrary
ImágenesPicturesLibrary

Para más información sobre cómo acceder a las bibliotecas multimedia desde una aplicación de Windows Phone, consulta Acceso a bibliotecas multimedia en aplicaciones de Windows Phone.

KnownFolders.PicturesLibrary
VídeosVideosLibrary

Para más información sobre cómo acceder a las bibliotecas multimedia desde una aplicación de Windows Phone, consulta Acceso a bibliotecas multimedia en aplicaciones de Windows Phone.

KnownFolders.VideosLibrary
Dispositivos extraíblesRemovableDevices

Nota  Debes incluir en el manifiesto de la aplicación aquellas asociaciones de tipo de archivo que declaren los tipos de archivo concretos a los que la aplicación tiene acceso en esta ubicación.

Para más información sobre cómo acceder a una tarjeta SD desde una aplicación de Windows Phone, consulta Acceso a la tarjeta SD en las aplicaciones de Windows Phone.

KnownFolders.RemovableDevices

Bibliotecas de Grupo Hogar

(Solo aplicaciones de la Tienda Windows)

Se necesitan al menos una de las siguientes funcionalidades.

KnownFolders.HomeGroup

Dispositivos de servidores multimedia (DLNA)

(Solo aplicaciones de la Tienda Windows)

Se necesitan al menos una de las siguientes funcionalidades.

KnownFolders.MediaServerDevices

Carpetas UNC (convención de nomenclatura universal)

(Solo aplicaciones de la Tienda Windows)

Se necesita una combinación de las siguientes funcionalidades.

Nota  Debes incluir en el manifiesto de la aplicación aquellas asociaciones de tipo de archivo que declaren los tipos de archivo concretos a los que la aplicación tiene acceso en esta ubicación.

Una carpeta se recupera mediante:

StorageFolder.GetFolderFromPathAsync

Un archivo se recupera mediante:

StorageFile.GetFileFromPathAsync

 

Temas relacionados

Administración de datos de aplicaciones
Recursos JavaScript
Inicio rápido: lectura y escritura de archivos
Inicio rápido: acceso a archivos mediante selectores de archivos
Cómo cargar recursos de archivos
Cómo hacer un seguimiento de los archivos y carpetas usados recientemente
Recursos C#/C++/VB
Inicio rápido: lectura y escritura de archivos
Inicio rápido: acceso a archivos mediante selectores de archivos
Cómo cargar recursos de archivos
Cómo hacer un seguimiento de los archivos y carpetas usados recientemente
Muestras
Muestra de información de paquete de la aplicación
Muestra de datos de la aplicación
Muestra de acceso de archivos
Muestra de selector de archivos
Referencia de API
Windows.ApplicationModel.Package
Windows.Storage.ApplicationData
Windows.Storage.DownloadsFolder
Windows.Storage.Pickers.FileOpenPicker
Windows.Storage.Pickers.FolderPicker
Windows.Storage.KnownFolders
Windows.Storage.StorageFile
Windows.Storage.StorageFolder
Windows.Storage.FileIO
Windows.Storage.PathIO
Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList
Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList

 

 

Mostrar:
© 2014 Microsoft