微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

什么是最便宜的方法来知道一个path是指一个文件夹或在c + +文件?

我正在使用shell扩展覆盖处理程序,我将传递一个我知道有效的path,但是我不知道它是一个文件夹还是一个文件。 这个操作可能会经常被调用,所以我想确定它是否是一个文件文件夹尽可能便宜。 使用c + +(窗口具体是我的要求罚款),我怎么能最好地完成这个?

如何在linux kernel 3.5编程中用null / 0s / 1sreplace文件内容

放置应用程序数据的最佳位置?

Windows上的Node.js和文件系统 – EBUSY错误

哪些文件系统支持通过Linux拼接(2)拼接?

阅读许多小文件时减​​less寻找时间

我建议使用Boost的Filesystem库中的 is_directory …

is_directory( "foo" )

GetFileAttributes()将提供这些信息:

const DWORD result = GetFileAttributes("C:\path\x"); if (INVALID_FILE_ATTRIBUTES == result) { std::cerr << "Error: " << GetLastError() << "n"; } else if (FILE_ATTRIBUTE_DIRECTORY == (result & FILE_ATTRIBUTE_DIRECTORY)) { std::cout << "Is directoryn"; } else { std::cout << "Is filen"; }

使用其中一个stat变量,并测试st_mode位。

这里有stat()函数族,它返回一个文件/目录的元数据,包括它的类型: http : //msdn.microsoft.com/en-us/library/14h5k7ff.aspx

如果你使用Windows类,那么只需使用这个

Directory::Exists(path)

如果是,那么你有一个文件夹。 同样使用

File::Exists(path)

如果你想确定一个路径是否是一个文件

还有PathIsDirectory的(Shell API) PathIsDirectory 。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐