永久删除文件C++
Permanently Delete File C++
我遇到了一个简单的问题,找不到简单的解决方案。我试图永久删除一个文件。我不是在寻找让数据不可恢复的最理想的方法,我只是不想它被放在回收站里。我有两个问题。
-
这是获取回收站路径的方法吗?这个想法是,一旦我有了路径,我就可以使用
remove()
从那里永久删除它。以下操作对我来说失败了,返回了一个完全不同的路径,而不是回收站的路径。也许我错过了一场辩论。char RecycleBin[_MAX_PATH]; SHGetSpecialFolderPath(NULL, RecycleBin, CSIDL_BITBUCKET, FALSE);
-
是否有win32api调用来永久删除文件?
感谢阅读。
编辑1:
根据下面的答案,我一直在使用_unlink ()
函数,但它的行为并没有完全达到我想要的效果。我需要一些东西来获取Desktop,然后向该字符串中添加一个文件,并将该字符串传递到一个函数中,该函数将删除该文件作为参数。以下是我如何尝试使用unlink。如果我这样取消链接-它起作用:
char path [] = "C:\Users\testuser\Desktop\test.dat";
_unlink( path );
然而,如果我用以下两种方式尝试,它就会失败。
char DesktopPath[_MAX_PATH];
SHGetSpecialFolderPath(NULL, DesktopPath, CSIDL_DESKTOPDIRECTORY, FALSE);
strcat ( DesktopPath, "\test.dat" );
_unlink ( DesktopPath );
这种方式(添加引号)也会失败。
char DesktopPath[_MAX_PATH];
char final_path [] = """;
char quotes [] = """;
SHGetSpecialFolderPath(NULL, DesktopPath, CSIDL_DESKTOPDIRECTORY, FALSE);
strcat ( DesktopPath, "\test.dat" );
strcat ( DesktopPath, quotes );
strcat ( final_path, DesktopPath );
_unlink ( final_path );
以上两种方法都可以很好地编译和运行,但实际上并没有消除文件。有什么想法吗?
使用POSIX函数unlink(对于MSVC2005+为_unlink)。
_unlink("file.ext"); //delete file without sending to Recycle Bin
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 读取文件并输入到矢量中
- 在C++中查找文件
- c++库的公共头文件中应该包含什么
- 用c++从输入文件中读取另一行
- Cppcheck生成xml转储文件
- 读取文件的最后一行并输入到链接列表时出错
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 如何将内容数组写入文本文件?
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到