使用Windows API文件函数C++
问题描述:
刚接触windows编程,有几个例子在整个互联网上我将要问,但是没有一个显示我认为失败的比较。使用Windows API文件函数C++
我在整个C++程序中使用了几个窗口API调用,只需要一些关于如何正确使用它们的指导。
例如下面我有GetFileAttributes(),它从文件属性常量中返回任何东西。
DWORD dwAttributes = GetFileAttributes(strPathOfFile.c_str());
if (dwAttributes != 0xffffffff)
{
if (dwAttributes == FILE_ATTRIBUTE_NORMAL)
{
pkFileInfoList->Add(strPathOfFile + "\t" +"FILE_ATTRIBUTE_NORMAL");
}
else if (dwAttributes == FILE_ATTRIBUTE_ARCHIVE)
{
pkFileInfoList->Add(strPathOfFile + "\t" + "FILE_ATTRIBUTE_ARCHIVE");
}
}
[/ CODE]
的if/else语句继续从文件属性常量的一切。
我是否正确使用这个,我有超过2500个文件的目录,我正在为这些路径重新提供帮助。它总是返回FILE_ATTRIBUTE_ARCHIVE。
感谢,
答
GetFileAttributes
返回一组属性,而不是一个单一属性的,所以要正确测试你应该做的:
DWORD dwAttributes = GetFileAttributes(strPathOfFile.c_str());
if (dwAttributes != 0xffffffff)
{
if (dwAttributes & FILE_ATTRIBUTE_NORMAL)
{
pkFileInfoList->Add(strPathOfFile + "\t" +"FILE_ATTRIBUTE_NORMAL");
}
else if (dwAttributes & FILE_ATTRIBUTE_ARCHIVE)
{
pkFileInfoList->Add(strPathOfFile + "\t" + "FILE_ATTRIBUTE_ARCHIVE");
}
}
即使用按位&代替==