我正在使用shell扩展覆盖处理程序,我将传递一个我知道有效的path,但是我不知道它是一个文件夹还是一个文件。 这个操作可能会经常被调用,所以我想确定它是否是一个文件或文件夹尽可能便宜。 使用c + +(窗口具体是我的要求罚款),我怎么能最好地完成这个?
如何在linux kernel 3.5编程中用null / 0s / 1sreplace文件的内容
放置应用程序数据的最佳位置?
Windows上的Node.js和文件系统 – EBUSY错误
阅读许多小文件时减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] 举报,一经查实,本站将立刻删除。