如何在Windows中提取目录属性?

发布于 2024-12-11 14:30:46 字数 145 浏览 0 评论 0原文

有函数返回目录中有多少个文件吗?

是迭代所有文件的唯一方法吗?

(例如,当您右键单击 Windows 中的目录时,它会列出:目录中的 7 个文件。有没有办法提取该信息?“它”如何获取该信息?)

谢谢。

Does any function return how many files are in a directory?

Is the only way to iterate through all files?

(For example, when you right click the directory in windows, it lists: 7 files in directory. Is there a way to extract that information?, how is "it" getting that info?)

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

娇女薄笑 2024-12-18 14:30:46

我不知道是否有更好的方法,但我使用 FindFirstFile/FindNextFile 来执行此操作(为了清楚起见,删除了一些错误检查):

WIN32_FIND_DATA ffd;
HANDLE hFind = INVALID_HANDLE_VALUE;
_TCHAR szDir[] = _T("somedir\\*");

hFind = FindFirstFile(szDir, &ffd);

do
{
    if((ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && !(!_tcscmp(ffd.cFileName,_T(".")) || !_tcscmp(ffd.cFileName, _T(".."))))
    {
        // This is a directory
    }
}
while (FindNextFile(hFind, &ffd) != 0);

I don't know if there's a better way, but I use FindFirstFile/FindNextFile to do this (some error checking removed for clarity):

WIN32_FIND_DATA ffd;
HANDLE hFind = INVALID_HANDLE_VALUE;
_TCHAR szDir[] = _T("somedir\\*");

hFind = FindFirstFile(szDir, &ffd);

do
{
    if((ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && !(!_tcscmp(ffd.cFileName,_T(".")) || !_tcscmp(ffd.cFileName, _T(".."))))
    {
        // This is a directory
    }
}
while (FindNextFile(hFind, &ffd) != 0);
徒留西风 2024-12-18 14:30:46

您可以使用 FindFirstFile / FindNextFile Win32 API 函数循环访问目录中的文件并计算有多少个文件。没有在目录级别维护单一统计数据。

Windows 资源管理器在最低级别执行类似的操作。

You can use the FindFirstFile / FindNextFile Win32 API functions to iterate through the files in the directory and count how many there are. There is no single statistic that is maintained at a directory level.

Windows Explorer does something similar at the lowest level.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文