jjzjj

dirent.h

全部标签

c++ - 在 Windows (C++) 的 dirent.h 中找不到 seekdir()

我实际上正在做一个项目,我必须浏览目录,为此我正在使用dirent.h库,因为我不想为此使用Boost。因此我找到了这篇文章invisualstudio2010or2008导致这里http://www.softagalleria.net/dirent.php我在哪里下载并安装了dirent.h。所以安装了dirent.h,我使用opendir、readdir等基本函数没有问题,但是当我想使用seekdir()函数时,它似乎不存在于库中,所以我进入dirent.h来验证我的假设并且(感谢Ctrl+F)确实缺少seekdir。我是不是错过了什么,或者我必须找到一个技巧来获得这个功能....

c++ - Dirent.h - 专门获取具有特定扩展名的文件的字符串

有一些问题试图想出一个好方法来拥有一个只选择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(

c++ - 在 Windows 的 dirent.h 中找不到 mkdir() 函数

我在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++ - 如何检查文件是否为常规文件?

如果文件是常规文件(而不是目录、管道等),我如何在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 上的 dirent.h

在C++中,在Windows上列出目录中所有文件的最佳方法是什么?在Linux或Windows上使用gcc(例如MingW)这很容易通过dirent.h实现,但是当dirent.h不可用时(例如VisualStudio)在Windows上执行此操作的最佳方法是什么?我是否应该强制人们将dirent.h的免费实现添加到他们的VisualStudio中?或者我应该写一个替代代码来读取文件吗?如果是这样,最好的代码是什么?谢谢。 最佳答案 dirent.h是一个POSIXheader。在Windows上,您使用Find*File*()Wi

c - readdir 为目录返回 d_type == DT_UNKNOWN 的 dirent。和

我有以下模仿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);

c - readdir 为目录返回 d_type == DT_UNKNOWN 的 dirent。和

我有以下模仿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);

检查一个目录。 readdir 返回的条目是目录、链接或文件。 dent->d_type 没有显示类型

我正在制作一个在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

检查一个目录。 readdir 返回的条目是目录、链接或文件。 dent->d_type 没有显示类型

我正在制作一个在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

c++ - 围绕 C Dirent.h 的现代 C++ 包装器

我正在尝试围绕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
12