Windows Phone 上的 GetTempPath 等效项

Equivalent of the GetTempPath on Windows Phone

我正在为 Windows 通用应用程序编译第三方库 libkml。我注意到下面的 Win32 API 除了 WINAPI_PARTITION_DESKTOP 以外的任何东西都不可用。

以下内容来自fileapi.h

#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

WINBASEAPI
DWORD
WINAPI
GetTempPathW(
    _In_ DWORD nBufferLength,
    _Out_writes_to_opt_(nBufferLength, return + 1) LPWSTR lpBuffer
    );
... 
#endif

有谁知道 GetTempPath 对于 Windows 商店应用程序和 Windows Phone 应用程序的等效功能?

使用ApplicationData.TemporaryFolder.

这是一个示例 GetTemporaryDirectory() 包装函数,摘自以下 MSDN 博客文章“为 Windows Store 和 Win32 桌面应用程序编写共享代码” :

Dual-use Coding Techniques for Games, part 3.

void GetTemporaryDirectory( wchar_t* dir, size_t maxsize )
{
    if ( !maxsize ) return;
    *dir = 0;
    #if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)
    DWORD nChars = GetTempPath( maxsize, dir );
    if ( nChars > 0 )
        dir[nChars-1] = '[=10=]'; // Trim trialing '\'
    else
        *dir = 0;
    #else // Windows Store WinRT app
    auto folder = Windows::Storage::ApplicationData::Current->TemporaryFolder;
    wcscpy_s( dir, maxsize, folder->Path->Data() );
    #endif // WINAPI_FAMILY_PARTITION
}