c操作文件夾
創建文件夾有兩個方法:
①使用cmd命令mkdir,舉例:system("mkdir
D:\\dic");這條命令執行mkdir程序,在D盤創建一個文件夾dic。
②使用windows提供的CreateDictionary函數,需要包含頭文件windows.h,使用方法:
CreateDictionary("D:\\dic", NULL);
同樣在D盤創建一個文件夾dic,因為轉義字元的問題所以用兩個斜杠。
這個命令和函數我就不詳細解釋了,分別參考mkdir和CreateDictionary的網路。
這里強調一下,這里說的mkdir是cmd命令,CreateDictionary是windows
API函數。
㈡ 怎麼用C語言刪除一個文件夾
可以用 rmdir() 函數,需要包含頭文件 direct.h, 還有一點需要注意,文件夾內是空的才可以刪除掉。下面是一個刪除d: emp文件夾,代碼如下:
#include<stdio.h>
#include<stdlib.h>
#include<direct.h>
intmain()
{
rmdir("D:\temp");
system("pause");
return0;
}
㈢ 如何用c語言將文件復制到自己想要的文件夾
C語言里的system("");函數可以執行命令行的幾乎所有指令,把命令行輸入的內容作為參數傳入即可。復制文件的話 應該是: 源文件 目的路徑。
例如命令行里的 c:\test.txt d:\text.txt,
也就是C語言里的:system(" c:\test.txt d:\text.txt");
或者這樣
char c[50] = " c:\test.txt d:\text.txt";
system(c);
㈣ 用C語言怎麼創建文件夾
在C語言中可以通過調用創建文件夾函數,或者使用系統命令兩種方法創建文件夾。
一、調用庫函數。
C語言庫函數創建文件夾依賴於編譯器,不同編譯器使用的創建文件夾函數不同。 舉例如下:
1、VC/VS編譯器。
函數聲明為 int _mkdir( const char *dirname );
頭文件為direct.h。
功能為創建dirname文件夾,並返回結果,如果成功則返回0,否則返回-1。
2、TC編譯器。
聲明形式為 int mkdir(char *pathname);
頭文件為dir.h。
功能為創建pathname文件夾,並返回結果,如果成功則返回0,否則返回-1。
3、gcc編譯器。
聲明形式為int mkdir(const char *pathname, mode_t mode);
其中函數頭文件為sys/stat.h, 參數類型mode_t頭文件為sys/types.h。
與其他編譯器的創建文件夾函數不同,gcc創建文件夾多了一個參數mode, 指定被創建文件夾的許可權。
函數功能為創建文件夾名為pathname, 許可權值為mode的文件夾。 如果成功則返回0,否則返回-1。
二、通過系統命令調用。
在C 語言中可以通過system函數調用系統命令,具體命令格式取決於操作系統。
比如在Linux/Unix下,可以使用:
system("mkdir ./XXX");
來創建XXX文件夾。
而在windows下需要使用dos命令,比如:
system("mkdir .\\XXX");
㈤ 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"); //刪除多個文件
}
㈥ 在windows下 怎麼用c語言遍歷文件夾要用純c的
什麼叫純C?
用C語言遍歷文件肯定需要用到函數,標准C下貌似沒有這個函數,但是使用VC的函數庫可能可以實現,如果實在不行可以用第三方函數庫,,,還不行的話用system("command");引用dos命令可以遍歷,