C++ 判断路径为文件夹还是文件

这篇具有很好参考价值的文章主要介绍了C++ 判断路径为文件夹还是文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

stat函数

头文件


#include <sys/stat.h>

 
struct stat s;
char* path = "D:\\test.txt";
 
if (stat(path,&s)==0){
  if(s.st_mode & S_IFDIR){
    std::cout<<"it's a directory"<<std::endl;
  }else if (s.st_mode & S_IFREG){
    std::cout<<"it's a file"<<std::endl;
  }else{
    std::cout<<"not file not directory"<<std::endl;
  }
}else{
  std::cout<<"error, doesn't exist"<<std::endl;
}

语法

int stat (Path, Buffer)
const char *Path;
struct stat *Buffer;

Path 

指定标识文件的路径名。根据所使用的接口,此名称的解释不同。如果指定了DirFileDescriptor并且Path是一个相对路径名,那么Path被认为是相对于DirFileDescriptor指定的目录的。

Buffer

指定指向在其中返回信息的状态结构的指针。stat结构在<sys/stat.h>文件中描述。

返回值

成功完成后,返回值0。否则,返回-1的值,并设置errno全局变量来指示错误。

Error Codes

EACCES 路径前缀的一个组件的搜索权限被拒绝
ENAMETOOLONG POSIX_NO_TRUNC标志生效时,路径前缀的长度超过了PATH_MAX标志值或路径名超过了NAME_MAX标志值。
ENOTDIR 路径前缀的组件不是目录。
EFAULT Path或Buffer参数都指向进程分配的地址空间之外的位置
ENOENT 以Path参数命名的文件不存在
EOVERFLOW 文件大小大于Buffer参数所指向的状态结构中所能表示的最大值。

FindFirstFileA函数

头文件

#include <windows.h>
using namespace std;

WIN32_FIND_DATAA FindFileData;
FindFirstFileA("D:\\test.txt",&FindFileData);
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
    std::cout<<"directory"<<std::endl;
}
else
{
    std::cout<<" file "<<std::endl;
}

语法

HANDLE FindFirstFileA(
  [in]  LPCSTR             lpFileName,
  [out] LPWIN32_FIND_DATAA lpFindFileData
);

参数

[in] lpFileName

目录或路径以及文件名。 文件名可以包含通配符,例如星号 (*) 或问号 (?) 。

此参数不应为 NULL,例如,空字符串或缺少终止 null 字符) 的字符串,或尾随反斜杠 (\) 结尾的字符串 (。

如果字符串以通配符、句点 (.) 或目录名称结尾,则用户必须具有对路径上根目录和所有子目录的访问权限。

在此函数的 ANSI 版本中,名称限制为 MAX_PATH 个字符。 若要将此限制扩展到 32,767 宽字符,请调用函数的 Unicode 版本,并将“\\?\”前面附加到路径。 有关详细信息,请参阅 命名文件。

提示从 Windows 10 版本 1607 开始,对于此函数的 unicode 版本 (FindFirstFileW) ,可以选择加入以删除MAX_PATH字符限制,而无需附加“\\?\”。 有关详细信息,请参阅 命名文件、路径和命名空间 的“最大路径限制”部分。

[out] lpFindFileData

指向 WIN32_FIND_DATA结构的指针 ,该结构接收有关找到的文件或目录的信息。文章来源地址https://www.toymoban.com/news/detail-428628.html

到了这里,关于C++ 判断路径为文件夹还是文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows11--判断文件夹是否存在

    不想全盘检索,只是想判断当前文件夹下,是否存在名为xxx的子文件夹 打开你要进行搜索的文件夹 点击上面的地址栏,输入cmd,按下回车键,进入cmd 界面 输入 dir /b | find \\\"xxx文件名\\\" (补充:输入 dir /b\\\" 可列出所有子文件的名字) 如果xxx文件存在,则返回xxx 如果xxx文件不存

    2024年01月21日
    浏览(78)
  • python判断文件夹是否存在,不存在则创建它,并将文件夹下所有的文件及子文件删除

    1、python判断文件夹是否存在,不存在则创建它,并将文件夹下所有的文件及子文件删除 2、python之判断文件文件夹是否存在,存在则删除,不存在则创建 2.1、删除文件于文件夹 使用os.remove删除文件夹会出现拒绝访问的错误,所以要使用以下方式进行删除 2.2、创建文件与文件

    2024年02月11日
    浏览(118)
  • MFC的文件操作——获取指定文件夹下面所有文件路径和删除指定文件夹下面所有文件

    目录 1.获取指定文件夹下面所有文件路径  2.删除指定文件夹下面所有文件 3.MFC的CString 字符串操作 4.MFC的 Int类型 与 Htuple类型数据之间转换  5.上述提及的函数应用 6.MFC与Halcon联合编程,获取halcon异常 7.MFC获取指定路径下的文件夹路径           ①、文件夹路径获取方式 ②

    2024年02月16日
    浏览(116)
  • 苹果Mac电脑文件夹路径怎么看?“访达”也能显示文件路径

    Windows系统中,“我的电脑”或“资源管理器”会显示文件/文件夹路径,Mac在“访达”中却不显示,确实不便,也让人费解。 连“三指拖移”都是默认不开启,Mac有这类奇怪逻辑就一点也不奇怪了。是的,这是苹果最不可理喻之处,老子就是要到处嚷嚷 其实Mac隐藏着一个文件

    2024年02月13日
    浏览(67)
  • macOS下快速复制文件或文件夹路径

    1、打开访达-显示-显示路径栏 2、在Finder中选择文件或是文件夹,然后按下快捷键command+Option+C,即可复制文件的全路径。

    2024年02月11日
    浏览(81)
  • 【关于前端打开本地文件夹获取本地文件路径】碰到需要打开本地文件路径,然后选中路径保存问题功能实现

    需要导入const ipcRenderer = require(“electron”).ipcRenderer; 但是必须要选中的文件夹里含有文件,因为是截取的,如果没有文件获取到的就是空的,是无法得到路径的 还是不知道怎么完全写打开一个目录然后保存到此目录。目前选择的目录如果无文件则覆盖不到。

    2024年04月11日
    浏览(84)
  • qt通过QFileDialog获取文件路径&保存文件&选择文件夹

            QT是一款常用的UI设计工具, 我们在日常开发中经常需要对文件或者文件夹进行操作,下面将介绍QT对于获取文件路径保存文件选择文件夹等场景的获取的伪代码.  注:适用于各语言的QT,比如python的pyQT之类的 保存文件: 根据指定文件夹找对应文件: 另存为:

    2024年02月06日
    浏览(61)
  • 切换Anaconda的指定文件夹路径

    anaconda刚开始下载的时候,默认是在c盘,然后我们使用anaconda打开文件夹也是打开c盘的文件夹。如果想在指定文件夹打开anaconda,可以按照如下步骤来。  如果是这种情况可以进行如下操作    然后切换到指定目录(我一般放在d盘)  如果是这种情况,可以进行如下操作   最后

    2024年02月11日
    浏览(53)
  • Python创建新文件夹并在其中创建文件的方法,或者文件夹路径不存在时自动创建

    参考:https://www.python100.com/html/S2IT74V832KF.html 在Python中,如果没有路径,则可以使用os.makedirs()方法来创建新的文件夹或目录。下面我们将从多个方面详细介绍Python如何创建新文件夹并在其中创建文件。 使用os.makedirs()方法可以轻松地创建新的文件夹或目录: 这段代码将在当前工

    2024年02月07日
    浏览(80)
  • 文件夹路径保存不同,什么批量修改名称

    在日常工作中不知道大家有没有遇到过,需要批量修改文件夹名称,并且文件夹保存路径不同呢,像这种情况到底不能批量修改呢。我也问了很多身边的朋友,他们有的说,他一般都修改保存路径是同一个,还很少遇到像我这样情况,他们给的建议是,分次修改,一次修改同

    2024年02月05日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包