Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C_fullpath()返回错误路径_C_Visual Studio 2010_Winapi_Path - Fatal编程技术网

C_fullpath()返回错误路径

C_fullpath()返回错误路径,c,visual-studio-2010,winapi,path,C,Visual Studio 2010,Winapi,Path,我试图用C语言检索文件的完整路径,但是\u fullpath函数总是返回路径,例如C:\Windows\system32\test.txt,而不是C:\Users\me\Documents and settings\test.txt 以下是我迄今为止编写的代码: char lszValue[255]; DWORD dwType=REG_SZ; DWORD dwSize=255; HANDLE hFind; WIN32_FIND_DATA FindFileData; char full[255];

我试图用C语言检索文件的完整路径,但是
\u fullpath
函数总是返回路径,例如
C:\Windows\system32\test.txt
,而不是
C:\Users\me\Documents and settings\test.txt

以下是我迄今为止编写的代码:

char lszValue[255];
DWORD dwType=REG_SZ;
DWORD dwSize=255;
HANDLE hFind;
WIN32_FIND_DATA FindFileData;
char full[255];

if ((RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\MY\\TestReg", &hKey)) == ERROR_SUCCESS)
{
    if ((RegQueryValueEx(hKey, TEXT("path"), NULL, &dwType,(LPBYTE)&lszValue, &dwSize)) == ERROR_SUCCESS)
    {
        if ((hFind = FindFirstFile(strcat(lszValue, "/*"), &FindFileData)) == INVALID_HANDLE_VALUE)
            WriteInLogFile("ERROR: FindFirstFile");
        do
        {
            if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
            {
                if (!_fullpath(full, FindFileData.cFileName, 255))
                WriteInLogFile("ERROR: _fullpath\r\n");
                WriteInLogFile(full);
            }
        } while (FindNextFile(hFind, &FindFileData) != 0);
    }
}
有人知道这个问题吗


谢谢

您必须首先将CWD设置为文件所在的文件夹。因为这是用来构造文件完整路径的文件夹


这意味着您必须在_fullpath之前进行调用。

您必须首先将CWD设置为文件所在的文件夹。因为这是用来构造文件完整路径的文件夹


这意味着,您必须在完整路径之前调用。

完整路径将相对路径(相对于当前目录)转换为完整路径。如果要将文件转换为完整路径,需要将当前目录设置为用于枚举文件的目录。

完整路径将相对路径(相对于当前目录)转换为完整路径。如果要将文件转换为完整路径,则需要将当前目录设置为用于枚举文件的目录。

您使用的是哪种计算机的32位或64位?您使用的是哪种计算机的32位或64位?