GetFileAttributesW 能否处理文件路径中的 url 编码空格 (%20)?
Can GetFileAttributesW handle url-encoded spaces (%20) in file paths?
函数调用:
OS_WRAPI::GetFileAttributesW(file_name_str); // file_name_str value is L"C:\Test%20Tool\test.exe"
returns INVALID_FILE_ATTRIBUTES
.
函数调用:
OS_WRAPI::GetFileAttributesW(file_name_str); // file_name_str value is L"C:\TestTool\test.exe"
returns 个有效属性。
两条路径都存在。
如果文件路径中有 url 编码空格 (%20),如何获取文件属性?
Can GetFileAttributesW handle spaces in filepaths?
是的。
请注意 L"C:\Test%20Tool\test.exe"
不包含 space。也许你应该通过 L"C:\Test Tool\test.exe"
.
If the function fails, the return value is INVALID_FILE_ATTRIBUTES
. To get extended error information, call GetLastError
.
所以你应该,如果 INVALID_FILE_ATTRIBUTES
被 returned,调用 GetLastError
。我希望 return ERROR_PATH_NOT_FOUND
.
如果问题实际上是
Can GetFileAttributesW handle L"%20"
in filepaths?
答案仍然是肯定的。如果该路径确实存在,并且 GetFileAttributesW
是 returning INVALID_FILE_ATTRIBUTES
,那么一定有其他问题,但是文件名中 L"%20"
的存在没有问题Windows API。再次从调用 GetLastError
.
开始
也许这里真正有问题的是,您认为 Windows 使用 L"%20"
对文件系统中的字符串进行编码。它不是。在文件系统上,L"%20"
和 L" "
是两个不同的名称。
函数调用:
OS_WRAPI::GetFileAttributesW(file_name_str); // file_name_str value is L"C:\Test%20Tool\test.exe"
returns INVALID_FILE_ATTRIBUTES
.
函数调用:
OS_WRAPI::GetFileAttributesW(file_name_str); // file_name_str value is L"C:\TestTool\test.exe"
returns 个有效属性。
两条路径都存在。
如果文件路径中有 url 编码空格 (%20),如何获取文件属性?
Can GetFileAttributesW handle spaces in filepaths?
是的。
请注意 L"C:\Test%20Tool\test.exe"
不包含 space。也许你应该通过 L"C:\Test Tool\test.exe"
.
If the function fails, the return value is
INVALID_FILE_ATTRIBUTES
. To get extended error information, callGetLastError
.
所以你应该,如果 INVALID_FILE_ATTRIBUTES
被 returned,调用 GetLastError
。我希望 return ERROR_PATH_NOT_FOUND
.
如果问题实际上是
Can GetFileAttributesW handle
L"%20"
in filepaths?
答案仍然是肯定的。如果该路径确实存在,并且 GetFileAttributesW
是 returning INVALID_FILE_ATTRIBUTES
,那么一定有其他问题,但是文件名中 L"%20"
的存在没有问题Windows API。再次从调用 GetLastError
.
也许这里真正有问题的是,您认为 Windows 使用 L"%20"
对文件系统中的字符串进行编码。它不是。在文件系统上,L"%20"
和 L" "
是两个不同的名称。