0

我正在为 Windows 7 编写文件系统驱动程序。我正在使用 Dokan 库。在 FindFiles 函数中,我想设置 8.3 备用名称。我假设如果我使用 dir /x 会显示,但它不会。我尝试传递一个空终止字符串,然后更改为空白填充(非空终止)字符串,如下所示。两者都没有显示替代名称 dir /x。

请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/aa365740%28v=vs.85%29.aspx以获取结构 _WIN32_FIND_DATA 中对 cAlternateFileName 的引用。

有人有这方面的信息吗?

这是我的代码中的剪辑:

        wsprintf(w_surfaceName, L"S%d-P%02x~1", pCartIDtable[count].dsmNumber, pCartIDtable[count].pltrNumber);
        wp = wcschr(w_surfaceName, L'\0');
        wmemset(wp, L' ', _countof(w_surfaceName) - (wp - w_surfaceName));
        wmemcpy(findData.cAlternateFileName, w_surfaceName, _countof(findData.cAlternateFileName));
        FillFindData(&findData, DokanFileInfo);
4

2 回答 2

0

Dokan 目前不支持 8.3 短名称。跟踪此功能的实施进度: https ://github.com/dokan-dev/dokany/issues/301

于 2016-08-03T13:21:12.417 回答
0

文件没有 8.3 短名称,或者该字段未填写。

某些版本的 Windows 默认关闭短名称生成。有些人为了使文件系统更快而关闭了短名称生成。即使您现在打开了短名称生成,它也不会追溯并在您现有的文件系统中生成短名称。

如果请求仅针对“FindExInfoBasic”,则无论如何都不会填写该字段。

于 2015-09-22T04:26:23.460 回答