我实际上正在做一个项目,我必须浏览目录,为此我正在使用dirent.h库,因为我不想为此使用Boost。因此我找到了这篇文章invisualstudio2010or2008导致这里http://www.softagalleria.net/dirent.php我在哪里下载并安装了dirent.h。所以安装了dirent.h,我使用opendir、readdir等基本函数没有问题,但是当我想使用seekdir()函数时,它似乎不存在于库中,所以我进入dirent.h来验证我的假设并且(感谢Ctrl+F)确实缺少seekdir。我是不是错过了什么,或者我必须找到一个技巧来获得这个功能....
有一些问题试图想出一个好方法来拥有一个只选择wav文件并专门返回这些文件的字符串的目录遍历器,例如只是wav文件。我可以停止dirent.h在子目录中查找,我很确定我只需要一个if语句,它只允许字符串中带有.wav的文件到目前为止我的代码看起来是这样的,我只是扩展了我在头文件的wiki页面上看到的几个例子:ifstreamfin;stringdir,filepath;DIR*dp;structdirent*dirp;structstatfilestat;coutd_name;if(stat(filepath.c_str(),&filestat))continue;if(S_ISDIR(
我在VC2013中为Windows使用dirent.h1.20(source)。我在里面找不到mkdir()。我该如何使用它?或者我可以仅使用dirent.h以某种方式创建目录吗? 最佳答案 在不使用任何其他库的情况下提供帮助的最简单方法是。#ifdefined_MSC_VER#include#elifdefined__GNUC__#include#include#endifvoidcreateDir(stringdir){#ifdefined_MSC_VER_mkdir(dir.data());#elifdefined__GNUC
如果文件是常规文件(而不是目录、管道等),我如何在C++中检查?我需要一个函数isFile()。DIR*dp;structdirent*dirp;while((dirp=readdir(dp))!=NULL){if(isFile(dirp)){cout我试过将dirp->d_type与(unsignedchar)0x8进行比较,但它似乎无法通过不同的系统移植。 最佳答案 您可以使用可移植boost::filesystem(直到最近在C++17中引入std::filesystem,标准C++库才能做到这一点):#include#inc
在C++中,在Windows上列出目录中所有文件的最佳方法是什么?在Linux或Windows上使用gcc(例如MingW)这很容易通过dirent.h实现,但是当dirent.h不可用时(例如VisualStudio)在Windows上执行此操作的最佳方法是什么?我是否应该强制人们将dirent.h的免费实现添加到他们的VisualStudio中?或者我应该写一个替代代码来读取文件吗?如果是这样,最好的代码是什么?谢谢。 最佳答案 dirent.h是一个POSIXheader。在Windows上,您使用Find*File*()Wi
我有以下模仿ls的代码:#include#includechar*dirent_type_to_str(unsignedchardirent_type){switch(dirent_type){caseDT_DIR:return"Dir";caseDT_REG:return"File";}printf("DEBUG:Unknowntype%x\n",dirent_type);return"Unk";}intmain(intargc,char**argv){char*dir_path=argc>1?argv[1]:".";DIR*dir_stream=opendir(dir_path);
我有以下模仿ls的代码:#include#includechar*dirent_type_to_str(unsignedchardirent_type){switch(dirent_type){caseDT_DIR:return"Dir";caseDT_REG:return"File";}printf("DEBUG:Unknowntype%x\n",dirent_type);return"Unk";}intmain(intargc,char**argv){char*dir_path=argc>1?argv[1]:".";DIR*dir_stream=opendir(dir_path);
我正在制作一个在Linuxshell中运行的程序,它接受一个参数(一个目录),并显示目录中的所有文件及其类型。输出应该是这样的:如果没有参数,它使用当前目录。这是我的代码:#include#include#includeintmain(intargc,char*argv[]){structstatinfo;DIR*dirp;structdirent*dent;//Ifnoargsif(argc==1){argv[1]=".";dirp=opendir(argv[1]);//specifydirectoryhere:"."isthe"currentdirectory"do{dent=re
我正在制作一个在Linuxshell中运行的程序,它接受一个参数(一个目录),并显示目录中的所有文件及其类型。输出应该是这样的:如果没有参数,它使用当前目录。这是我的代码:#include#include#includeintmain(intargc,char*argv[]){structstatinfo;DIR*dirp;structdirent*dent;//Ifnoargsif(argc==1){argv[1]=".";dirp=opendir(argv[1]);//specifydirectoryhere:"."isthe"currentdirectory"do{dent=re
我正在尝试围绕cheaderdirent.h编写一个现代c++包装器。在C中要读取一个目录的内容,写成类似下面的内容:intlistdir(constchar*path){structdirent*entry;DIR*dp;dp=opendir(path);if(dp==NULL){perror("opendir");return-1;}while((entry=readdir(dp)))puts(entry->d_name);closedir(dp);return0;}将其转换为现代C++,我有以下内容(其中m_dir和m_dirent是std::unique_ptr的,而m_fil