#include <windows.h>
#include <stdio.h>
void main()
{
char szBuffer[1024] = "D:\\pagefile.sys";//为什么会是文件夹,哪里出错了吗?
DWORD dwAttrib = GetFileAttributes(szBuffer);
if (FILE_ATTRIBUTE_DIRECTORY & dwAttrib)
{
printf("folder\n");
}
else
{
printf("file\n");
}
}
解决方案 »
- 用 vs 2008 c++ 对 auto cad 二次开发
- 关于逻辑磁盘粉碎的问题 急!在线等
- 怎样获取主窗口当前状态?
- 串口通讯:进来帮忙看一下,有代码。
- 点与直线的关系(点在线的左边还是右边)
- 菜鸟提问如何画点?
- 小问题:怎么动态改属性页的标题,怎么拦截属性页里面的控件的双击消息?
- 啊...............
- MFC 为什么AfxGetApp()来取得theApp指针而不直接用全局变量theApp
- 请问:如何在程序中选择中文输入法?(分期送200分)
- 下面的双缓冲图片和文字还是没有加载上去(附最新代码)感激1000000000年!!谁能帮我测试下,我WM界面
- 秒杀! 一个很简单的问题! 请各位大虾帮忙!
或者在Watch输入@err,hr看看出错的描述。
我看了下源代码,好像也没有什么特别处理的地方呀!!!
这样就行了
"D:\\pagefile.sys"还是打印folder呀
可是MFC的CFileFind::IsDirectory为什么可以正确区分呢??
或者CreateFile函数返回的HANDLE传递给GetFileInformationByHandle()函数,根据该函数的BY_HANDLE_FILE_INFORMATION这个结构体中的成员来判断也可以
BOOL CFileFind::MatchesMask(DWORD dwMask) const
{
ASSERT(m_hContext != NULL);
ASSERT_VALID(this); if (m_pFoundInfo != NULL)
return (!!(((LPWIN32_FIND_DATA) m_pFoundInfo)->dwFileAttributes & dwMask));
else
return FALSE;
}_AFX_INLINE BOOL CFileFind::IsDirectory() const
{ return MatchesMask(FILE_ATTRIBUTE_DIRECTORY); }CFileFind::IsDirectory源代码,也不过是用GetFileAttributes的呀!!!
通过查找的方法可以正确的判断pagefile.sys是文件了.看来GetFileAttributes不是很可靠呀!!
既然已经出错,所以后面的判断自然不成功喽。。