创建目录及多级目录

来源:互联网 发布:淘宝培训班义乌 编辑:程序博客网 时间:2024/05/22 16:40

CreateDirectory()一次只能创建一级目录,而且前级目录需要判断是否存在。

用MakeSureDirectoryPathExists()可以一次创建多级目录,使用时注意: 
  (1)   #include   <imagehlp.h>,link中加入imagehlp.lib;  
  (2)   路径名最后结尾要用'\',如要创建c:\aaa\bbb\ccc\ddd要这样写:  
  MakeSureDirectoryPathExists("c:\\aaa\\bbb\\ccc\\ddd\\");
不管bbb, 或者ccc在与否, 该函数一次创建到底
===判断文件是否存在===

方法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.Cexists\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 foundis %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");
}