- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用 GetShortPathName 函数在网络驱动器 F:\上获取一个带有中文文件夹名称的短路径名。当我从该文件夹运行 EXE 文件时,我看不到它能够获取短路径名。当我从 C:\驱动器执行此操作时,一切正常。
这是我的代码:
#include"stdafx.h"
#include<windows.h>
#include<tchar.h>
#include<stdio.h>
#include <iostream>
using namespace std;
#define BUFSIZE 4096
bool GetIsCaseCorrect(const WCHAR* fileName)
{
bool result = false;
// Correct case by converting to short path and back to long
WCHAR shortFileName[_MAX_PATH];
if (GetShortPathName(fileName, shortFileName, _MAX_PATH) != 0)
{
wchar_t correctFileName[_MAX_PATH];
wcout << "ShortFile " << shortFileName;
GetLongPathName(shortFileName, correctFileName, _MAX_PATH);
result = wcscmp(fileName, correctFileName) != 0;
}
return result;
}
int main() {
bool ret;
HMODULE hModule = GetModuleHandleW(NULL);
WCHAR path[MAX_PATH];
GetModuleFileNameW(hModule, path, MAX_PATH);
ret = GetIsCaseCorrect(path);
getchar();
}
如果我运行此程序,短路径不会显示在文件夹为中文的非系统驱动器上。
我的 Windows 操作系统是 Windows 7。
最佳答案
据我所知,Windows 7机器默认使用SMB 2.0。 SMB 3.0 更好地支持 GetShortPathNameW 方法。
您可以按照下面的文档在 Win7 上启用 SMB 3.0。
或者您可以按照下面的文档检查Disable8dot3的卷状态。
https://blogs.msdn.microsoft.com/winsdk/2013/10/09/getshortpathname-doesnt-return-short-path-name/
最诚挚的问候,
毕男爵
关于c++ - GetShortPathName 因网络驱动器上有中文文件夹而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53128464/
我想用 GetShortPathName 函数在网络驱动器 F:\上获取一个带有中文文件夹名称的短路径名。当我从该文件夹运行 EXE 文件时,我看不到它能够获取短路径名。当我从 C:\驱动器执行此操作
我正在寻找一个函数,它可以为给定的“长”路径返回“短”(8.3 表示法)路径。然而,GetShortPathName函数(看起来非常适合)对我不起作用,因为它要求具有给定长路径的文件已经存在。 对于给
GetShortPathName() 在 XP SP3 上无法正常工作 http://msdn.microsoft.com/en-us/library/aa364989(VS.85).aspx 正在返
我经常使用 GetShortPathName 没有问题。但是,现在我遇到了问题。 以前我做过,比如@"C:\LongFoldername\LonfolderName\" 现在我像这样使用 UNC @"
我想在我的 java 类中使用 native Windows api 函数。 我感兴趣的函数是GetShortPathName。 http://msdn.microsoft.com/en-us/lib
我可以让此代码在交互式环境中运行,但当我从调试器或 .exe 文件运行代码时,它会崩溃 忘记错误:检测到 FatalExecutionEngineError!运行时遇到 fatal error 。错误
我是一名优秀的程序员,十分优秀!