‘壹’ c语言怎样删除文件
首先要说明的是这里并不是指删除C编译器里面的文件,呵呵,如果只是要删除那些文件的话,那就很简单,直接选中文件后按delete键就可以删除了,但是我们删除那些文件干嘛?我们还要用它写程序啊,呵呵。我在这里要说的是,怎样使用C语言编写程序来删除文件。
在C语言中,我们可以使用remove()函数来删除指定的文件,具体语法为:
Int remove(char *filename);其中filename是一个指向字符串的指针,该字符串可以组成有效的文件名,也可以包含路径说明。如果我们要删除D盘下的ABC.txt文件,我们就可以这样写:remove(“D:\ABC.txt”);
‘贰’ c++中如何删除文件
可以通过 system() 函数调用删除文件的系统命令。
比如在 Linux 下删除文件的命令是 rm,则在C/C++中删除名为 p3.dat 文件:
system("rm p3.dat");
在Windows下可以调用DOS命令
#include <stdlib.h>
void main()
{
反之创建文件
1、调用Windows API函数 CreateDirectory()和RemoveDirectory(),成功返回0,否则返回非零。
头文件<windows.h>
创建:CreateDirectory()
#include <Windows.h> //头文件
#include<iostream>
using namespace std;
int main()
{
string path = "D:\1";
bool flag = CreateDirectory(path.c_str(), NULL);
return 0;
}
2、调用C运行库函数int mkdir()和int rmdir(),包含头文件<direct.h>
创建:mkdir()
#include<direct.h> //头文件
#include<iostream>
using namespace std;
int main()
{
string path = "D:\1";
mkdir(path.c_str());
return 0;
}
‘叁’ c\c++怎样删除文件夹
第一种方法
1.SHFileOperation
SHFILEOPSTRUCT FileOp;
ZeroMemory((void*)&FileOp,sizeof(SHFILEOPSTRUCT));
FileOp.fFlags = FOF_SILENT|FOF_NOCONFIRMATION;
FileOp.hNameMappings = NULL;
FileOp.hwnd = NULL;
FileOp.lpszProgressTitle = NULL;
FileOp.pFrom = lpszPath;
FileOp.pTo = NULL;
FileOp.wFunc = FO_DELETE;
SHFileOperation(&FileOp);
如果加了FOF_SILENT标志,那么在函数调用的时候,即使出错,也不会弹框提示,但是,今天发现,如果这个目录是共享的,依然还是会弹框提示。不知道是不是一个Bug呢?
2.CFileFind
bool DeleteDirectory(char* strDirName)
{
CFileFind tempFind;
char strTempFileFind[MAX_PATH];
sprintf(strTempFileFind,"%s\\*.*", strDirName);
BOOL IsFinded = tempFind.FindFile(strTempFileFind);
while (IsFinded)
{
IsFinded = tempFind.FindNextFile();
if (!tempFind.IsDots())
{
char strFoundFileName[MAX_PATH];
strcpy(strFoundFileName, tempFind.GetFileName().GetBuffer(MAX_PATH));
if (tempFind.IsDirectory())
{
char strTempDir[MAX_PATH];
sprintf(strTempDir,"%s\\%s", strDirName, strFoundFileName);
DeleteDirectory(strTempDir);
}
else
{
char strTempFileName[MAX_PATH];
sprintf(strTempFileName,"%s\\%s", strDirName, strFoundFileName);
DeleteFile(sTempFileName);
}
}
}
tempFind.Close();
if(!RemoveDirectory(strDirName))
{
return FALSE;
}
return TRUE;
}
这个主要通过递归的方法,依次删除文件,直到目录为空,删除目录、文件夹。
第二种
//这是用vc的方法:
bool MyDeleteFile(char * lpszPath)
{
SHFILEOPSTRUCT FileOp={0};
FileOp.fFlags = FOF_ALLOWUNDO | //允许放回回收站
FOF_NOCONFIRMATION; //不出现确认对话框
FileOp.pFrom = lpszPath;
FileOp.pTo = NULL; //一定要是NULL
FileOp.wFunc = FO_DELETE; //删除操作
return SHFileOperation(&FileOp) == 0;
}
void MyDialog::OnButton3()
{
// MyDeleteFile("d:\\PID\0\0"); //删除一个文件夹
MyDeleteFile("d:\\PID.dsp\0d:\\PID.dsw\0\0"); //删除多个文件
}
void MyDialog::OnButton3()
{
// MyDeleteFile("d:\\PID\0\0"); //删除一个文件夹
MyDeleteFile("d:\\PID.dsp\0d:\\PID.dsw\0\0"); //删除多个文件
}
‘肆’ 如何在VS里用C语言删除文件夹
删除文件夹可以使用dos命令rd
在C语言中,加入头文件#include <stdlib.h>
在需要删除文件夹的语句位置使用system("rd D:/test")即可