使用C获取文件夹中的文件列表
例如,我有一个文件夹的路径
/我的文件夹
或在 Windows 中:
C:\我的文件夹
,我想获取该文件夹中所有文件的列表。我该如何在 C 中做到这一点?
C++ 和 C99 有什么不同吗?
如何获取其文件夹列表?
任何帮助表示赞赏。
I have path to a folder for example
/myfolder
or in Windows:
C:\myfolder
and I want to get a list of all files in that folder. How shall I do so in C?
Is it different in C++ or C99?
How can I get a list of its folders?
Any help is appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
在 POSIX 操作系统中,您可以调用 opendir() 和 readdir()。在 Windows 中,您可以调用 _findfirst() 和 _findnext()。只需付出一点努力,您就可以将自己的 opendir() 和 readdir() 实现为 Windows 下的包装函数,以便您的应用程序代码可以在任何地方使用相同的 API。可以在此处找到相关示例。
In POSIX operating systems, you can call opendir() and readdir(). In Windows you can call _findfirst() and _findnext(). With a little effort you can implement your own opendir() and readdir() as wrapper functions under Windows, so that your application code can use the same API everywhere. An example of that can be found here.
您可以使用 dirent.h 中声明的函数
You can use the functions declared in dirent.h
C++ 中最好的方法是使用 boost 文件系统。
至于 C,您将需要平台 API (POSIX/WinAPI)。
POSIX 文档 + 示例: http://www.opengroup.org/onlinepubs/009695399/函数/readdir.html
The best approach in C++ is using boost filesystem.
As for C, you will need platform API (POSIX/WinAPI).
POSIX documentation + example: http://www.opengroup.org/onlinepubs/009695399/functions/readdir.html
查看我用 C/C++ 编写的
get_all_files_within_folder()
此处,我回答了与您类似的问题。它非常适合我。希望有帮助。Check out the
get_all_files_within_folder()
I wrote in C/C++ here, which I answered a similar question as yours. It works perfectly for me. Hope it helps.这是经典任务,可能在 Kernigan & 中找到一个可能的解决方案。 Ritchie - C 编程语言(第 8.6 章)。
任务的本质是递归遍历目标文件夹及其子文件夹。
This is classical task, one possiple solution maybe find in Kernigan & Ritchie - The C programming Language (Chapter 8.6).
Essence of task is recursive traverse of target folder and its subfolders.