白白的白豆腐
2020-11-28 01:40
采纳率: 40%
浏览 11

C++ 如何获取指定文件夹下的所有文件的完整路径,跪求有用的代码T^T

visual studio 2017  debug X64

比如我E:\picture 下有三张图片:  1.jpg  2.jpg 3.jpg

我想获取三张图片的完整路径:

E:\picture\1.jpg

E:\picture\2.jpg

E:\picture\3.jpg

  • 点赞
  • 收藏

3条回答 默认 最新

  • include_iostream_ 2020-11-28 19:15
    已采纳
    #include <iostream>
    #include <fstream>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <algorithm>
    #include <filesystem>
    using namespace std;
    namespace fs = std::filesystem;
    
    int main() {
    	fs::directory_iterator d("E:\\");
    	for (fs::path f: d) {
    		wcout << f << endl;
    	}
    	return 0;
    }
    

    暂时没有VS环境,但我确认过VS最新的版本支持std::filesystem,所以这段代码应该可以工作。可能会有一些乱码要处理。

    点赞 打赏 评论
  • include_iostream_ 2020-11-28 19:03

    如果是C语言的话,可以用DIR结构体。C++17引入的filesystem也能做这件事。稍等我写个例程。

    点赞 打赏 评论
  • include_iostream_ 2020-11-28 19:10
    #include <stdio.h>
    #include <dirent.h>
    
    int main() {
    	DIR* d = opendir("E:\\");
    	if (d == NULL) {
    		perror("opendir");
    		return 1;
    	}
    	struct dirent* f;
    	while ((f = readdir(d)) != NULL) {
    		printf("%s\n", f->d_name);
    	} 
    	return 0;
    }
    

    这段C语言代码可能得在GNU环境下才能编译,我再写个应该能用于MSVC的C++的。

    点赞 打赏 评论

相关推荐 更多相似问题