> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XPersistentLocalStorageGetPath

> XPersistentLocalStorageGetPath

# XPersistentLocalStorageGetPath

Devuelve la ruta de acceso específica del juego al almacenamiento local persistente (PLS) en el dispositivo.

## Sintaxis

```cpp theme={null}
HRESULT XPersistentLocalStorageGetPath(  
         size_t pathSize,  
         char* path,  
         size_t* pathUsed  
)  
```

### Parámetros

*pathSize*   \_In\_\
Tipo: size\_t

El número de caracteres del búfer proporcionado para la ruta de acceso de PLS. Para obtener este valor, llame a [XPersistentLocalStorageGetPathSize](/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpathsize).

*path*   \_Out\_writes\_to\_(pathSize,*pathUsed)\
Tipo: char*

La ruta de acceso de PLS en la que el juego puede escribir datos.

*pathUsed*   \_Out\_opt\_\
Tipo: size\_t\*

El número de caracteres escritos en el búfer proporcionado.

### Valor devuelto

Tipo: [HRESULT](https://learn.microsoft.com/openspecs/windows_protocols/ms-erref/0642cb2f-2075-4469-918c-4441e69c548a)

Devuelve **S\_OK** si se realiza correctamente; de lo contrario, devuelve un código de error. Para obtener una lista de códigos de error, consulte [Códigos de error](/reference/errorcodes). Si la función produce un error porque *pathSize* es menor que la longitud de la ruta de acceso de PLS, el valor devuelto se establece en **E\_FAIL** para dispositivos XBOX y en **HRESULT\_FROM\_WIN32(ERROR\_INSUFFICIENT\_BUFFER)** para dispositivos PC.

## Comentarios

<Note>No es seguro llamar a esta función en un subproceso sensible al tiempo. Para obtener más información, consulte [Subprocesos sensibles al tiempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

Los juegos pueden necesitar PLS para tareas como el espacio de almacenamiento provisional, el DLC dentro del juego y la generación de contenido a petición. Aunque el espacio se conserva entre activaciones del juego, los usuarios también pueden eliminarlo. Para obtener más información sobre PLS, consulte [Almacenamiento local](/build/console-features/storage/local-storage)

El acceso a PLS y su administración dependen de la familia del dispositivo. Para los dispositivos XBOX, proporcionamos acceso a una carpeta montada en la raíz de una unidad. La cantidad de espacio de almacenamiento aprovisionado para esa carpeta se especifica en el archivo MicrosoftGame.config del juego. El espacio aprovisionado está disponible y siempre presente durante un inicio del juego. Para liberar espacio, los usuarios pueden eliminar el espacio aprovisionado sin desinstalar el juego, cuando el juego no se está ejecutando; sin embargo, cuando el juego está en ejecución, la disponibilidad del almacenamiento está garantizada. Para obtener este espacio aprovisionado en dispositivos XBOX, debe tener una entrada correspondiente en el archivo MicrosoftGame.config.

Para los dispositivos PC, proporcionamos acceso a la ubicación de una carpeta de almacenamiento local en el PC, pero no se aprovisiona espacio específicamente para el juego. Los usuarios pueden eliminar ese espacio incluso mientras el juego se está ejecutando. La disponibilidad del almacenamiento no está garantizada y no se requiere una entrada en el archivo MicrosoftGame.config para reclamar espacio de almacenamiento. Primero debe confirmar que el espacio disponible en la carpeta de almacenamiento local es suficiente para los propósitos del juego.

Antes de llamar a esta función para recuperar la ruta de acceso de PLS, llame a la función [XPersistentLocalStorageGetPathSize](/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpathsize) para obtener el número de caracteres de la ruta de acceso de PLS, luego proporcione ese valor en el parámetro *pathSize* y asigne al menos esa cantidad de caracteres para el parámetro *path*. Se producirá un error si se especifican menos caracteres en *pathSize* de los que contiene la ruta de acceso de PLS.

El ejemplo siguiente muestra cómo usar las funciones **XPersistentLocalStorageGetPathSize** y **XPersistentLocalStorageGetPath** para obtener la ruta de acceso de PLS del juego.

```cpp theme={null}
// Confirm that all of the features needed to run asynchronous tasks on 
// task queues are available.
LPCSTR Game::CheckPLSPath()
{
    // Confirm the length of the path to the local storage folder.
    LPCSTR returnPath = "";
    size_t pathSize;
    if (SUCCEEDED(XPersistentLocalStorageGetPathSize(&pathSize)))
    {
        char * path = new char[pathSize];
        size_t * pathUsed = new size_t;
        if (path != nullptr)
        {
            // Get the path to the local storage folder.
            if (SUCCEEDED(XPersistentLocalStorageGetPath(pathSize, path, pathUsed))) 
            {
                // Just to be safe, copy the bytes used in the buffer 
                // to a separate string.
                char * actualPath = new char[*pathUsed];
                strncpy(actualPath, path, *pathUsed);
                returnPath = actualPath;
            }
        }
    };

    return returnPath;
}
```

## Requisitos

**Encabezado:** XPersistentLocalStorage.h

**Biblioteca:** xgameruntime.lib

**Plataformas compatibles:** Windows, consolas de la familia XBOX One y consolas XBOX Series

## Documentación conceptual

* [Almacenamiento local en la consola XBOX](/build/console-features/storage/local-storage)
* [Subprocesos sensibles al tiempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Consulte también

[XPersistentLocalStorageGetPathSize](/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpathsize)\
[XPersistentLocalStorage](/reference/system/xpersistentlocalstorage/xpersistentlocalstorage_members)\
[Cómo usar el nuevo archivo MicrosoftGame.config](/build/core-features/common/game-config/MicrosoftGameConfig-toc)


## Related topics

- [XPersistentLocalStorageGetPathSize](/es/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpathsize.md)
- [XPersistentLocalStorage](/es/reference/system/xpersistentlocalstorage/xpersistentlocalstorage_members.md)
- [Contenedores de API de C# de Unity para el GDK](/es/build/gdk-and-engines/unity/unity-api-wrappers.md)
- [XPersistentLocalStorageGetSpaceInfo](/es/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetspaceinfo.md)
- [XPersistentLocalStorageMountForPackage](/es/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragemountforpackage.md)
