C++文件操作 - 下载本文

SHGetSpecialFolderPath获取特殊目录

MFC文件操作大全

1.创建文件夹

CreateDirectory(%%1,NULL);

2.创建文件 CFile file;

file.Open(%%1,CFile::modeCreate|CFile::modeWrite);

3.删除文件

DeleteFile(%%1);

4.删除文件夹

RemoveDirectory(%%1);

5.删除一个目录下所有的文件夹 CFileFind finder;

BOOL bWorking = finder.FindFile(%%1+\while (bWorking) {

bWorking = finder.FindNextFile(); if (finder.IsDirectory()) {

RemoveDirectory(finder.GetFilePath()); } }

6.清空文件夹

RemoveDirectory(%%1);

CreateDirectory(%%1,NULL);

7.读取文件

char sRead[1024];

CFile mFile(_T(%%1),CFile::modeRead); while (sRead!=null) {

mFile.Read(sRead,1024); CString %%2(sRead); %%3 }

? 作者:无尾兽零号机 ? 4位粉丝 ? 2009-10-23 22:13 ? 回复此发言

?

2 回复:MFC文件操作大全

8.写入文件

CFile mFile(_T(%%1), CFile::modeWrite|CFile::modeCreate); mFile.Write(%%2,sizeof(%%2)); mFile.Flush(); mFile.Close();

9.写入随机文件

char szTempPath[_MAX_PATH],szTempfile[_MAX_PATH]; GetTempPath(_MAX_PATH, szTempPath);

GetTempFileName(szTempPath,_T (\

CFile m_tempFile(szTempfile,CFile:: modeCreate|CFile:: modeWrite); char m_char='a';

m_tempFile.Write(&m_char,2); m_tempFile.Close(); //循环写入多个值 strTempA; int i;

int nCount=6;

//共有6个文件名需要保存

for (i=0;i{strTemp.Format(\

strTempA=文件名;

//文件名可以从数组,列表框等处取得.

::WritePrivateProfileString(\c://usefile//usefile.ini); }

strTemp.Format(\

::WritePrivateProfileString(\//将文件总数写入,以便读出. //读出

nCount=::GetPrivateProfileInt(\for(i=0;i{strTemp.Format(\strTemp=\

::GetPrivateProfileString(\//使用strTempA中的内容. }

10.读取文件属性

dwAttrs = GetFileAttributes(%%1);

if (dwAttrs & FILE_ATTRIBUTE_READONLY) { %%2 }

if (NORMAL & FILE_ATTRIBUTE_READONLY){ %%3 }

11.写入属性

SetFileAttributes(szNewPath,dwAttrs | FILE_ATTRIBUTE_READONLY);

12.枚举一个目录下所有文件夹 CFileFind finder;

BOOL bWorking = finder.FindFile(%%1+\while (bWorking) {

bWorking = finder.FindNextFile(); if(finder.IsDirectory()){

CString %%1=finder.GetFilePath(); %%2 } }

13.复制文件夹

WIN32_FIND_DATA FileData; HANDLE hSearch; DWORD dwAttrs;

char szDirPath[] = %%2;

char szNewPath[MAX_PATH]; char szHome[MAX_PATH]; BOOL fFinished = FALSE;

if (!CreateDirectory(szDirPath, NULL)) { //不能创建新的目录 return; }

hSearch = FindFirstFile(%%1+\if (hSearch == INVALID_HANDLE_VALUE) { return; }

while (!fFinished) {

? 作者:无尾兽零号机 ? 4位粉丝 ?

? 2009-10-23 22:14 ? 回复此发言

3 回复:MFC

文件操作大全

lstrcpy(szNewPath, szDirPath);

lstrcat(szNewPath, FileData.cFileName);

if (CopyFile(FileData.cFileName, szNewPath, FALSE)) { dwAttrs = GetFileAttributes(FileData.cFileName); if (!(dwAttrs & FILE_ATTRIBUTE_READONLY)) { SetFileAttributes(szNewPath,

dwAttrs | FILE_ATTRIBUTE_READONLY); } }

else { //不能复制文件 return; }

if (!FindNextFile(hSearch, &FileData)) {

if (GetLastError() == ERROR_NO_MORE_FILES) { //遍历文件夹完成 fFinished = TRUE; }

else {

//找不到下一个文件 return;

} } }

FindClose(hSearch);

14.复制一个目录下所有的文件夹到另一个文件夹下 WIN32_FIND_DATA FileData; HANDLE hSearch; DWORD dwAttrs;

char szDirPath[] = %%2; char szNewPath[MAX_PATH]; char szHome[MAX_PATH]; BOOL fFinished = FALSE;

if (!CreateDirectory(szDirPath,NULL)) {

//不能创建新的目录 return; }

BOOL bWorking = finder.FindFile(%%1+\while (bWorking) {

bWorking = finder.FindNextFile(); if(finder.IsDirectory()){

hSearch = FindFirstFile(finder.GetFilePath()+\if (hSearch == INVALID_HANDLE_VALUE) {

return; }

while (!fFinished) {

lstrcpy(szNewPath, szDirPath);

lstrcat(szNewPath, FileData.cFileName);

if (CopyFile(FileData.cFileName, szNewPath, FALSE)) {

dwAttrs = GetFileAttributes(FileData.cFileName); if (!(dwAttrs & FILE_ATTRIBUTE_READONLY)) {

SetFileAttributes(szNewPath,

dwAttrs | FILE_ATTRIBUTE_READONLY); } } else {

//不能复制文件

福利:打开支付宝首页搜索“608066754”即可领取红包,吃个早点,买杯饮料肯定够了,红包加倍最高可以领取99元红包!

「觉得内容不错,打赏支持一下」

南京廖华

觉得内容不错,打赏支持一下

使用微信扫描二维码完成支付

福利:打开支付宝扫描二维码领红包,可免费下载资料 微信:17702577729