以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  VC中判断目录,文件是否存在,创建目录的方法  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=62868)


--  作者:卷积内核
--  发布时间:5/20/2008 3:44:00 PM

--  VC中判断目录,文件是否存在,创建目录的方法
目录是否存在的检查:

BOOL   FolderExist(CString strPath)
{
     WIN32_FIND_DATA   wfd;
     BOOL rValue = FALSE;
     HANDLE hFind = FindFirstFile(strPath, &wfd);
    if ((hFind != INVALID_HANDLE_VALUE) && (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
    {
              rValue = TRUE;   
     }
     FindClose(hFind);
    return rValule;
}
    文件存在性检查:

BOOL   FileExist(CString strFileName)
{
      CFileFind fFind;
     return fFind.FindFile(strFileName);
}
创建目录:

BOOL CreateFolder(CString strPath)
{
     SECURITY_ATTRIBUTES attrib;
     attrib.bInheritHandle = FALSE;
     attrib.lpSecurityDescriptor = NULL;
     attrib.nLength =sizeof(SECURITY_ATTRIBUTES);
    //上面定义的属性可以省略。 直接return ::CreateDirectory( path, NULL); 即可
     return ::CreateDirectory( strPath, &attrib);
}


--  作者:卷积内核
--  发布时间:5/20/2008 3:45:00 PM

--  
VC下判断文件是否存在之最简方法

方法1:
#include  <io.h>
#include  <stdio.h>
#include  <stdlib.h>

void main( void )
{
    /* Check for existence */
    if( (_access( "D:\\a.txt", 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" );
    }
}

方法2:
if (INVALID_HANDLE_VALUE != CreateFile("D:\\a.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL))
{
    AfxMessageBox("File ACCESS.C exists\n");
}

方法3:
#define _WIN32_WINNT 0x0400

#include <windows.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
    WIN32_FIND_DATA FindFileData;
    HANDLE hFind;

    printf ("Target file is %s.\n", argv[1]);
    hFind = FindFirstFile(argv[1], &FindFileData);
    if (hFind == INVALID_HANDLE_VALUE)
    {
        printf ("Invalid File Handle. GetLastError reports %d\n", GetLastError ());
        return (0);
    }
    else
    {
        printf ("The first file found is %s\n", FindFileData.cFileName);
        FindClose(hFind);
        return (1);
    }
}

方法4:
if (GetFileAttributes("c:\\1.txt") == -1)
    MessageBox(0."Invalid File ","hehe",0)
else
    MessageBox(0."The first file found ","haha",0)

方法5:
if (INVALID_HANDLE_VALUE != CreateFile("D:\\a.txt", 0, 0, NULL, OPEN_EXISTING, 0, NULL))
{
    AfxMessageBox("File exists\n");
}



W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
6,812.500ms