VC++資料夾的建立和資料夾的刪除總結
阿新 • • 發佈:2019-01-09
假設我想判斷C:\Program Files中有沒有一個名為hotel的資料夾,有的話就什麼也不做,沒有的話就建立一個名為hotel的資料夾,
請問這個程式碼應該怎麼寫呢?(能建立一個隱藏的資料夾更好)
//答案
一、BOOL CreateDirectory(
LPCTSTR lpPathName, // directory name
LPSECURITY_ATTRIBUTES lpSecurityAttributes
// Pointer to a SECURITY_ATTRIBUTES structure
);
要判斷資料夾是否存在,首先用CFindFile類得到檔案(可以判斷是否存在),存在的話用IsDirectory判斷是否資料夾
二、BOOL PathIsDirectory(
LPCTSTR pszPath
);////判斷一個目錄是否存在!
三、
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
char szDirName[] = "C:\\Program Files\\hotel";
if( CreateDirectory(szDirName, NULL) ) //判斷是否存在,否則建立
{
cout<<szDirName<<" : Not Exist"<<endl;
SetFileAttributes(szDirName, FILE_ATTRIBUTE_HIDDEN ); //隱藏(設定為隱藏)
cout<<"Create Successed!"<<endl;
}
return 0;
}
四在vc++6.0
#include <direct.h>
#include <stdio.h>
#include <stdlib.h>//for system()函式
int main(void)
{
_mkdir("D:\\myd"); //這個就是建立一個目錄 mkdir 就是make directory 的意思
system("dir D:\\myd"); //這是開啟這個目錄 的意思
system("start D:"); // 這是開啟一個獨立視窗程式來執行 也就是開一個黑屏dos介面
getchar()(); //這個是從螢幕獲得輸入
_rmdir("D:\\myd"); //這個是移除這個目錄
return 0; //返回0
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
VC如何刪除資料夾下的檔案
BOOL CDlgData::DeleteDirectory(char *sDirName)
{
CFileFind tempFind;
char sTempFileFind[200] ;
sprintf(sTempFileFind,"%s\\*.*",sDirName);
BOOL IsFinded = tempFind.FindFile(sTempFileFind);
while (IsFinded)
{
IsFinded = tempFind.FindNextFile();
if (!tempFind.IsDots())
{
char sFoundFileName[200];
strcpy(sFoundFileName,tempFind.GetFileName().GetBuffer(200));
if (tempFind.IsDirectory())
{
char sTempDir[200];
sprintf(sTempDir,"%s\\%s",sDirName,sFoundFileName);
DeleteDirectory(sTempDir);
}
else
{
char sTempFileName[200];
sprintf(sTempFileName,"%s\\%s",sDirName,sFoundFileName);
DeleteFile(sTempFileName);
}
}
}
tempFind.Close();
if(!RemoveDirectory(sDirName))
{
return FALSE;
}
return TRUE;
}
註釋
DeleteDirectory(sTempDir);
這個函式只能刪除空目錄。你必須先刪除裡面的所有檔案才行
可以用WINSHELLAPI int WINAPI SHFileOperation(
LPSHFILEOPSTRUCT lpFileOp
);函式刪除包含檔案的目錄
////////////////////////////////////////////
請問這個程式碼應該怎麼寫呢?(能建立一個隱藏的資料夾更好)
//答案
一、BOOL CreateDirectory(
LPCTSTR lpPathName, // directory name
LPSECURITY_ATTRIBUTES lpSecurityAttributes
// Pointer to a SECURITY_ATTRIBUTES structure
);
要判斷資料夾是否存在,首先用CFindFile類得到檔案(可以判斷是否存在),存在的話用IsDirectory判斷是否資料夾
二、BOOL PathIsDirectory(
LPCTSTR pszPath
);////判斷一個目錄是否存在!
三、
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
char szDirName[] = "C:\\Program Files\\hotel";
if( CreateDirectory(szDirName, NULL) ) //判斷是否存在,否則建立
{
cout<<szDirName<<" : Not Exist"<<endl;
SetFileAttributes(szDirName, FILE_ATTRIBUTE_HIDDEN ); //隱藏(設定為隱藏)
cout<<"Create Successed!"<<endl;
}
return 0;
}
四在vc++6.0
#include <direct.h>
#include <stdio.h>
#include <stdlib.h>//for system()函式
int main(void)
{
_mkdir("D:\\myd"); //這個就是建立一個目錄 mkdir 就是make directory 的意思
system("dir D:\\myd"); //這是開啟這個目錄 的意思
system("start D:"); // 這是開啟一個獨立視窗程式來執行 也就是開一個黑屏dos介面
getchar()(); //這個是從螢幕獲得輸入
_rmdir("D:\\myd"); //這個是移除這個目錄
return 0; //返回0
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
VC如何刪除資料夾下的檔案
BOOL CDlgData::DeleteDirectory(char *sDirName)
{
CFileFind tempFind;
char sTempFileFind[200] ;
sprintf(sTempFileFind,"%s\\*.*",sDirName);
BOOL IsFinded = tempFind.FindFile(sTempFileFind);
while (IsFinded)
{
IsFinded = tempFind.FindNextFile();
if (!tempFind.IsDots())
{
char sFoundFileName[200];
strcpy(sFoundFileName,tempFind.GetFileName().GetBuffer(200));
if (tempFind.IsDirectory())
{
char sTempDir[200];
sprintf(sTempDir,"%s\\%s",sDirName,sFoundFileName);
DeleteDirectory(sTempDir);
}
else
{
char sTempFileName[200];
sprintf(sTempFileName,"%s\\%s",sDirName,sFoundFileName);
DeleteFile(sTempFileName);
}
}
}
tempFind.Close();
if(!RemoveDirectory(sDirName))
{
return FALSE;
}
return TRUE;
}
註釋
DeleteDirectory(sTempDir);
這個函式只能刪除空目錄。你必須先刪除裡面的所有檔案才行
可以用WINSHELLAPI int WINAPI SHFileOperation(
LPSHFILEOPSTRUCT lpFileOp
);函式刪除包含檔案的目錄
////////////////////////////////////////////