今天遇到了一个奇怪的问题,
在测试那里无法通过adb pull 命令将配置文件写入到手机,检查发现连本地文件都没有生成,
通过一系列的检查后发现是,在C盘下程序安装目录权限都比较高,程序没法新建文件,
解决办法是使用临时文件作为中转站
用到了以下函数:
wchar_t tempFileName[MAX_PATH] = { 0 };
wchar_t sysTempPath[MAX_PATH + 1] = { 0 };
GetTempPath(MAX_PATH, sysTempPath);
GetTempFileName(sysTempPath, L"DPC", 0, tempFileName);
GetTempPath
DWORD WINAPI GetTempPath(
_In_ DWORD nBufferLength, //字符串缓冲区的大小由lpBuffer标识,在TCHARs中。
_Out_ LPTSTR lpBuffer //指向字符串缓冲区的指针,它接收指定临时文件路径的以空字符结尾的字符串。 返回的字符串以反斜杠结尾,例如“C:\ TEMP \”。
);
用于获取为临时文件指定的路径。
GetTempFileName
UINT WINAPI GetTempFileName(
_In_ LPCTSTR lpPathName,
_In_ LPCTSTR lpPrefixString,
_In_ UINT uUnique,
_Out_ LPTSTR lpTempFileName
);
创建临时文件的名称。 如果生成了唯一的文件名,则会创建一个空文件,并释放其句柄; 否则,仅生成文件名