我用CreateDirectory与CreateFile创建的临时文件夹和文件,需要用程序删除时却删不掉,说有文件正在使用,但是我把里面的所有文件全部删除,该文件夹才可删除,这是为什么呢!望有经验的朋友指点一二!!!!!!11

解决方案 »

  1.   

    deletefile()可删除文件(不包含文件夹),removedirctory()可删除文件夹,但此文件夹下不能再有文件(.和..)除外!要删除整个文件夹,可使用shell函数!如下:
             SHFILEOPSTRUCT sfo;

    sfo.hwnd = NULL;
    sfo.wFunc = FO_DELETE;
    sfo.pFrom = "c:\\test\0";
    sfo.pTo = NULL;
    sfo.fFlags = FOF_NOCONFIRMATION|FOF_SILENT;
    SHFileOperation(&sfo);
    具体函数见MSDN!
      

  2.   

    BOOL DeleteDirectory(char *DirName)//如删除 DeleteDirectory("c:\\aaa") 
    {
    CFileFind tempFind;
    char tempFileFind[MAX_PATH];
    sprintf(tempFileFind,"%s\\*.*",DirName);
    BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);
    while(IsFinded)
    {
    IsFinded=(BOOL)tempFind.FindNextFile();
    if(!tempFind.IsDots())
    {
    char foundFileName[MAX_PATH];
    strcpy(foundFileName,tempFind.GetFileName().GetBuffer(MAX_PATH));
    if(tempFind.IsDirectory())
    {
    char tempDir[MAX_PATH];
    sprintf(tempDir,"%s\\%s",DirName,foundFileName);
    DeleteDirectory(tempDir);
    }
    else
    {
    char tempFileName[MAX_PATH];
    sprintf(tempFileName,"%s\\%s",DirName,foundFileName);
    DeleteFile(tempFileName);
    }
    }
    }
    tempFind.Close();
    if(!RemoveDirectory(DirName))
    {
    MessageBox(0,"删除目录失败!","警告信息",MB_OK);//比如没有找到文件夹,删除失败,可把此句删除
    return FALSE;
    }
    return TRUE;
    }
      

  3.   

    这样说吧,我是从我的一个合成文件中读出原来的文件,并在windows临时目录中创建这些文件以及文件夹,我想把这些文件拖动的一个目录,但是不能拖动,小一些的文件夹就可以,大的就不能拖,这是为什么呢,太奇怪了,望高手指点!!!!!!!!