DeleteFile()不起作用

Tho*_*723 1 c c++ winapi

我正在尝试这个DeleteFile()功能,我在下面编写了这个程序.

#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
int main(){
    FILE * filetxt;
    // creat a file
    filetxt = fopen("C:\\Users\\Thomas\\Desktop\\filetxt.txt", "w");

    // delete the file 
    if (DeleteFile("\\\\.\\C:\\Users\\Thomas\\Desktop\\filetxt.txt") != 0){
        cout<<"success";
    }else{
        cout<<"fail";
    }
    cin;
}
Run Code Online (Sandbox Code Playgroud)

但该计划没有按照预期的那样发挥作用.创建的文件未删除.

输出是:

fail
Run Code Online (Sandbox Code Playgroud)

Mr.*_*C64 10

您打开文件fopenDeleteFile 关闭之前调用fclose.

您可以从DeleteFileMSDN文档中读取:

如果应用程序尝试删除具有为正常I/O打开的其他句柄的文件或作为内存映射文件(在打开其他句柄时必须指定FILE_SHARE_DELETE),则DeleteFile函数将失败.

还要注意的是,如果失败,你可以调用GetLastErrorDeleteFile与有关失败的原因的详细信息,以得到一个错误代码.