急!怎样判断一个文件或文件夹是否存在?
解决方案 »
- MFC橡皮擦类CRectTracker技术的疑问
- 请教:Visual C++ 2008 有哪些新特性
- 如何隐藏一个服务
- SQL 查询器 错误提示 ?在线等哈!
- 有谁知道美国晨星深圳公司的工资、福利等情况吗?
- 求救:Compiling问题
- 如何编程(c++或c#)实现枚举同一网段内的所有已开启的数据库
- 这样的程序会不会出现内存泄漏??
- 作为回报,zhdleo来领分,800
- 在线等待 ! 在多文档的 CMainFrame::中那个位置 可以获得 CCreateContext* pContext 不为空
- 请问如何在一个对话框里得到鼠标点击在某个控件上的消息通知?
- 请教 在静态拆分后的两列中的第二列再拆分成两行 如何进行?
* file named "ACCESS.C" to see if it exists and if
* writing is allowed.
*/#include <io.h>
#include <stdio.h>
#include <stdlib.h>void main( void )
{
/* Check for existence */
if( (_access( "ACCESS.C", 0 )) != -1 )
{
printf( "File ACCESS.C exists\n" );
/* Check for write permission */
if( (_access( "ACCESS.C", 2 )) != -1 )
printf( "File ACCESS.C has write permission\n" );
}
}
两个办法:
1、
CFileFind f;
if(f.FindFile("c:\\temp"))
AfxMessageBox("存在");
//Directory exist.
else
AfxMessageBox("不存在");
//Not exist.2、
if(_access("c:\\temp", 0) == 0){
AfxMessageBox("存在");
}
else{
AfxMessageBox("不存在");
} by the way
检查目录并且创建//一个小函数,不管原来有没有存在都可以,没考虑只读属性的盘
void CBookSet::CreateDirTree(LPCTSTR path)
{
CString sFullPath = path;
int iPos = sFullPath.Find(_T("\\\\")) + 1;
if(iPos != 0)
{ // support \\192.168.53.136\vssworkpath\test2\...
iPos = sFullPath.Find(_T('\\'), iPos + 1);
iPos = sFullPath.Find(_T('\\'), iPos + 1);
}
else
{ // support c:\test2\...
iPos = sFullPath.Find(_T('\\'), iPos + 1);
} while( -1 != (iPos = sFullPath.Find(_T('\\'), iPos + 1)) )
{
::CreateDirectory(sFullPath.Left(iPos), NULL);
}
}
HFILE hFile=OpenFile(strFileName,lpOpenBuf,OF_EXIST);
if(hFile!=HFILE_ERROR)
{
// file exist.
}方法二、#include
CString m_Edit=“f:\\test.txt”;//从Edit得到的字符串
ifstream infile(m_Edit);
if(!infile)
{
AfxMessageBox("该文件不存在");
}方法三、char *lpszStr="C:\WINDOWS\system32\MSCAL.OCX";
PathFileExists(lpszStr);方法四、
FILE *fp=NULL;
fp = fopen( "C:\WINDOWS\system32\MSCAL.OCX", "r" );
if( fp != NULL )
{
MessageBox(NULL, "这个文件已经存在!", "Tips", MB_OK );
return ;
}方法五、
HANDLE hFind;
WIN32_FIND_DATA dataFind;
BOOL bMoreFiles = TRUE;//Find the first file in the main directory
hFind = FindFirstFile(TEXT("C:\\WINDOWS\\system32\\MSCAL.OCX"),&dataFind);
if(hFind) //若存在,则hFind == TRUE
{
}
else
{
}
FindClose(hFind);方法六、CString strPath("C:\\a.txt");
HANDLE hFile = NULL;hFile= CreateFile(
strPath,
GENERIC_ALL,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,//判定文件是否存在 FILE_ATTRIBUTE_NORMAL,
NULL);DWORD dwErr = GetLastError();
if (dwErr == ERROR_FILE_NOT_FOUND)
{
AfxMessageBox("FILE_NOT_FOUND");
}if (hFile)
CloseHandle(hFile);
方法七、
CFileFind find;
int result=find.FindFile("C:\\aaa.txt");
if(result==0)
{
AfxMessageBox("文件不存在");
}
else
{
AfxMessageBox("文件存在");
}