我是靠谱客的博主 哭泣毛豆,最近开发中收集的这篇文章主要介绍MFC文件操作大全(一),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

获得文件路径:GetFilePath()
获得文件名:GetFileName()
获得文件标题:GetFileTitile()
Path is : “C:WINDOWSSYSTEM.INI”
Name is : “SYSTEM.INI”
Title is: “System”

1.创建文件夹

创建路径上最后的一个文件夹
[cpp] view plain copy
print ?
  1. CreateDirectory(%%1,NULL)  
CreateDirectory(%%1,NULL)
创建路径上所有的文件夹
[cpp] view plain copy
print ?
  1. SHCreateDirectoryEx(NULL, strTempPath, NULL);  
SHCreateDirectoryEx(NULL, strTempPath, NULL);

2.创建文件

[cpp] view plain copy
print ?
  1. CFile file;   
  2. file.Open(%%1,CFile::modeCreate|CFile::modeWrite);  
CFile file;
file.Open(%%1,CFile::modeCreate|CFile::modeWrite);

3.删除文件

[cpp] view plain copy
print ?
  1. DeleteFile(%%1);  
DeleteFile(%%1);

4.删除文件夹

[cpp] view plain copy
print ?
  1. RemoveDirectory(%%1);  
RemoveDirectory(%%1);

5.删除一个文件夹下所有的文件夹

[cpp] view plain copy
print ?
  1. CFileFind finder;   
  2. BOOL bWorking = finder.FindFile(%%1+“\*.*”);   
  3. while (bWorking)   
  4. {   
  5. bWorking = finder.FindNextFile();  
  6. if(finder.IsDirectory()){  
  7. dir.Delete(finder.GetFilePath());  
  8. }  
  9. }   
CFileFind finder;
BOOL bWorking = finder.FindFile(%%1+"\*.*");
while (bWorking)
{
bWorking = finder.FindNextFile();
if(finder.IsDirectory()){
dir.Delete(finder.GetFilePath());
}
} 

6.清空文件夹

[cpp] view plain copy
print ?
  1. RemoveDirectory(%%1);  
  2. CreateDirectory(%%1,NULL)  
RemoveDirectory(%%1);
CreateDirectory(%%1,NULL)

7.读取文件

[cpp] view plain copy
print ?
  1. char sRead[1024];  
  2. CFile mFile(_T(%%1),CFile::modeRead);  
  3. while(sRead!=null)  
  4. {  
  5.   mFile.Read(sRead,1024);  
  6. CString %%2=CString(sRead);  
  7. %%3  
  8. }  
char sRead[1024];
CFile mFile(_T(%%1),CFile::modeRead);
while(sRead!=null)
{
  mFile.Read(sRead,1024);
CString %%2=CString(sRead);
%%3
}

8.写入文件

[cpp] view plain copy
print ?
  1. mFile.Close();  
  2. CFile mFile(_T(%%1),  CFile::modeWrite|CFile::modeCreate);  
  3. mFile.Write(%%2);  
  4. mFile.Flush();  
  5. mFile.Close();  
mFile.Close();
CFile mFile(_T(%%1),
CFile::modeWrite|CFile::modeCreate);
mFile.Write(%%2);
mFile.Flush();
mFile.Close();

9.写入随机文件

[cpp] view plain copy
print ?
  1. char szTempPath[_MAX_PATH],szTempfile[_MAX_PATH];  
  2. GetTempPath(_MAX_PATH, szTempPath);  
  3. GetTempFileName(szTempPath,_T (”my_”),0,szTempfile);  
  4. CFile m_tempFile(szTempfile,CFile:: modeCreate|CFile:: modeWrite);  
  5. char m_char=‘a’;  
  6. m_tempFile.Write(&m_char,2);  
  7. m_tempFile.Close();  
  8. //循环写入多个值  
  9. strTempA;  
  10. int i;  
  11. int nCount=6;  
  12. file://共有6个文件名需要保存  
  13. for(i=0;i {strTemp.Format(“%d”,i);  
  14. strTempA=文件名;  
  15. file://文件名可以从数组,列表框等处取得.  
  16. ::WritePrivateProfileString(”UseFileName”,“FileName”+strTemp,strTempA,  
  17. c:\usefile\usefile.ini);  
  18. }  
  19. strTemp.Format(”%d”,nCount);  
  20. ::WritePrivateProfileString(”FileCount”,“Count”,strTemp,“c:\usefile\usefile.ini”);  
  21. file://将文件总数写入,以便读出.  
  22. //读出  
  23. nCount=::GetPrivateProfileInt(”FileCount”,“Count”,0,“c:\usefile\usefile.ini”);  
  24. for(i=0;i {strTemp.Format(“%d”,i);  
  25. strTemp=”FileName”+strTemp;  
  26. ::GetPrivateProfileString(”CurrentIni”,strTemp,“default.fil”, strTempA.GetBuffer(MAX_PATH),MAX_PATH,“c:\usefile\usefile.ini”);  
  27. file://使用strTempA中的内容.  
  28. }  
char szTempPath[_MAX_PATH],szTempfile[_MAX_PATH];
GetTempPath(_MAX_PATH, szTempPath);
GetTempFileName(szTempPath,_T ("my_"),0,szTempfile);
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;
file://共有6个文件名需要保存
for(i=0;i {strTemp.Format("%d",i);
strTempA=文件名;
file://文件名可以从数组,列表框等处取得.
::WritePrivateProfileString("UseFileName","FileName"+strTemp,strTempA,
c:\usefile\usefile.ini);
}
strTemp.Format("%d",nCount);
::WritePrivateProfileString("FileCount","Count",strTemp,"c:\usefile\usefile.ini");
file://将文件总数写入,以便读出.
//读出
nCount=::GetPrivateProfileInt("FileCount","Count",0,"c:\usefile\usefile.ini");
for(i=0;i {strTemp.Format("%d",i);
strTemp="FileName"+strTemp;
::GetPrivateProfileString("CurrentIni",strTemp,"default.fil", strTempA.GetBuffer(MAX_PATH),MAX_PATH,"c:\usefile\usefile.ini");
file://使用strTempA中的内容.
}

10.读取文件属性

[cpp] view plain copy
print ?
  1. dwAttrs   =   GetFileAttributes(%%1);   
  2. if   (dwAttrs   &   FILE_ATTRIBUTE_READONLY)       
  3. {       
  4.   
  5.   
  6. }       
  7. if   (NORMAL &  FILE_ATTRIBUTE_READONLY)  
  8. {       
  9.   
  10.   
  11. }       
dwAttrs
=
GetFileAttributes(%%1);
if
(dwAttrs
&
FILE_ATTRIBUTE_READONLY)
{
}
if
(NORMAL &
FILE_ATTRIBUTE_READONLY)
{
}

11.写入属性

[cpp] view plain copy
print ?
  1. SetFileAttributes(szNewPath,dwAttrs   |   FILE_ATTRIBUTE_READONLY);      
SetFileAttributes(szNewPath,dwAttrs
|
FILE_ATTRIBUTE_READONLY);

12.枚举一个文件夹中的所有文件夹

[cpp] view plain copy
print ?
  1. CFileFind finder;   
  2. BOOL bWorking = finder.FindFile(%%1+“\*.*”);   
  3. while (bWorking)   
  4. {   
  5. bWorking = finder.FindNextFile();  
  6. if(finder.IsDirectory()){  
  7. CString %%1=finder.GetFilePath();  
  8. %%2  
  9. }  
  10. }   
CFileFind finder;
BOOL bWorking = finder.FindFile(%%1+"\*.*");
while (bWorking)
{
bWorking = finder.FindNextFile();
if(finder.IsDirectory()){
CString %%1=finder.GetFilePath();
%%2
}
} 

13.复制文件夹

[cpp] view plain copy
print ?
  1. WIN32_FIND_DATA FileData;   
  2. HANDLE hSearch;   
  3. DWORD dwAttrs;   
  4. char szDirPath[] = %%2;   
  5. char szNewPath[MAX_PATH];   
  6. char szHome[MAX_PATH];   
  7. BOOL fFinished = FALSE;   
  8. if (!CreateDirectory(szDirPath, NULL))   
  9. {  
  10. //不能创建新的目录   
  11. return;  
  12. }  
  13. hSearch = FindFirstFile(%%1+”\*.*”, &FileData);   
  14. if (hSearch == INVALID_HANDLE_VALUE)   
  15. {   
  16. return;   
  17. }   
  18. while (!fFinished)   
  19. {   
  20. lstrcpy(szNewPath, szDirPath);   
  21. lstrcat(szNewPath, FileData.cFileName);   
  22. if (CopyFile(FileData.cFileName, szNewPath, FALSE))   
  23. {   
  24. dwAttrs = GetFileAttributes(FileData.cFileName);   
  25. if (!(dwAttrs & FILE_ATTRIBUTE_READONLY))   
  26. {   
  27. SetFileAttributes(szNewPath,   
  28. dwAttrs | FILE_ATTRIBUTE_READONLY);   
  29. }   
  30. }   
  31. else   
  32. {   
  33. //不能复制文件  
  34. return;   
  35. }   
  36. if (!FindNextFile(hSearch, &FileData))   
  37. {   
  38. if (GetLastError() == ERROR_NO_MORE_FILES)   
  39. {   
  40. //遍历文件夹完成   
  41. fFinished = TRUE;   
  42. }   
  43. else   
  44. {   
  45. //找不到下一个文件  
  46. return;   
  47. }   
  48. }   
  49. }   
  50. FindClose(hSearch);   
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+"\*.*", &FileData);
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
{
//不能复制文件
return;
}
if (!FindNextFile(hSearch, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
{
//遍历文件夹完成
fFinished = TRUE;
}
else
{
//找不到下一个文件
return;
}
}
}
FindClose(hSearch); 

14.复制一个文件夹下所有的文件夹到另一个文件夹下

[cpp] view plain copy
print ?
  1. WIN32_FIND_DATA FileData;   
  2. HANDLE hSearch;   
  3. DWORD dwAttrs;   
  4. char szDirPath[] = %%2;   
  5. char szNewPath[MAX_PATH];   
  6. char szHome[MAX_PATH];   
  7. BOOL fFinished = FALSE;   
  8. if (!CreateDirectory(szDirPath,NULL))   
  9. {  
  10. //不能创建新的目录   
  11. return;  
  12. }  
  13. BOOL bWorking = finder.FindFile(%%1+“\*.*”);   
  14. while (bWorking)   
  15. {   
  16. bWorking = finder.FindNextFile();  
  17. if(finder.IsDirectory()){  
  18. hSearch = FindFirstFile(finder.GetFilePath()+”\*.*”, &FileData);   
  19. if (hSearch == INVALID_HANDLE_VALUE)   
  20. {   
  21. return;   
  22. }   
  23. while (!fFinished)   
  24. {   
  25. lstrcpy(szNewPath, szDirPath);   
  26. lstrcat(szNewPath, FileData.cFileName);   
  27. if (CopyFile(FileData.cFileName, szNewPath, FALSE))   
  28. {   
  29. dwAttrs = GetFileAttributes(FileData.cFileName);   
  30. if (!(dwAttrs & FILE_ATTRIBUTE_READONLY))   
  31. {   
  32. SetFileAttributes(szNewPath,   
  33. dwAttrs | FILE_ATTRIBUTE_READONLY);   
  34. }   
  35. }   
  36. else   
  37. {   
  38. //不能复制文件  
  39. return;   
  40. }   
  41. if (!FindNextFile(hSearch, &FileData))   
  42. {   
  43. if (GetLastError() == ERROR_NO_MORE_FILES)   
  44. {   
  45. //遍历文件夹完成   
  46. fFinished = TRUE;   
  47. }   
  48. else   
  49. {   
  50. //找不到下一个文件  
  51. return;   
  52. }   
  53. }   
  54. }   
  55. FindClose(hSearch);  
  56. }  
  57. }   
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()+"\*.*", &FileData);
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
{
//不能复制文件
return;
}
if (!FindNextFile(hSearch, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
{
//遍历文件夹完成
fFinished = TRUE;
}
else
{
//找不到下一个文件
return;
}
}
}
FindClose(hSearch);
}
} 

15.移动文件夹

[cpp] view plain copy
print ?
  1. WIN32_FIND_DATA FileData;   
  2. HANDLE hSearch;   
  3. DWORD dwAttrs;   
  4. char szDirPath[] = %%2;   
  5. char szNewPath[MAX_PATH];   
  6. char szHome[MAX_PATH];   
  7. BOOL fFinished = FALSE;   
  8. if (!CreateDirectory(szDirPath, NULL))   
  9. {  
  10. //不能创建新的目录   
  11. return;  
  12. }  
  13. hSearch = FindFirstFile(%%1+”\*.*”, &FileData);   
  14. if (hSearch == INVALID_HANDLE_VALUE)   
  15. {   
  16. return;   
  17. }   
  18. while (!fFinished)   
  19. {   
  20. lstrcpy(szNewPath, szDirPath);   
  21. lstrcat(szNewPath, FileData.cFileName);   
  22. if (CopyFile(FileData.cFileName, szNewPath, FALSE))   
  23. {   
  24. dwAttrs = GetFileAttributes(FileData.cFileName);   
  25. if (!(dwAttrs & FILE_ATTRIBUTE_READONLY))   
  26. {   
  27. SetFileAttributes(szNewPath,   
  28. dwAttrs | FILE_ATTRIBUTE_READONLY);   
  29. }   
  30. }   
  31. else   
  32. {   
  33. //不能复制文件  
  34. return;   
  35. }   
  36. if (!FindNextFile(hSearch, &FileData))   
  37. {   
  38. if (GetLastError() == ERROR_NO_MORE_FILES)   
  39. {   
  40. //遍历文件夹完成   
  41. fFinished = TRUE;   
  42. }   
  43. else   
  44. {   
  45. //找不到下一个文件  
  46. return;   
  47. }   
  48. }   
  49. }   
  50. FindClose(hSearch);   
  51. RemoveDirectory(%%1);  
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+"\*.*", &FileData);
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
{
//不能复制文件
return;
}
if (!FindNextFile(hSearch, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
{
//遍历文件夹完成
fFinished = TRUE;
}
else
{
//找不到下一个文件
return;
}
}
}
FindClose(hSearch);
RemoveDirectory(%%1);

16.移动一个文件夹下所有的文件夹到另一个目录下

[cpp] view plain copy
print ?
  1. WIN32_FIND_DATA FileData;   
  2. HANDLE hSearch;   
  3. DWORD dwAttrs;   
  4. char szDirPath[] = %%2;   
  5. char szNewPath[MAX_PATH];   
  6. char szHome[MAX_PATH];   
  7. BOOL fFinished = FALSE;   
  8. if (!CreateDirectory(szDirPath,NULL))   
  9. {  
  10. //不能创建新的目录   
  11. return;  
  12. }  
  13. BOOL bWorking = finder.FindFile(%%1+“\*.*”);   
  14. while (bWorking)   
  15. {   
  16. bWorking = finder.FindNextFile();  
  17. if(finder.IsDirectory()){  
  18. hSearch = FindFirstFile(finder.GetFilePath()+”\*.*”, &FileData);   
  19. if (hSearch == INVALID_HANDLE_VALUE)   
  20. {   
  21. return;   
  22. }   
  23. while (!fFinished)   
  24. {   
  25. lstrcpy(szNewPath, szDirPath);   
  26. lstrcat(szNewPath, FileData.cFileName);   
  27. if (CopyFile(FileData.cFileName, szNewPath, FALSE))   
  28. {   
  29. dwAttrs = GetFileAttributes(FileData.cFileName);   
  30. if (!(dwAttrs & FILE_ATTRIBUTE_READONLY))   
  31. {   
  32. SetFileAttributes(szNewPath,   
  33. dwAttrs | FILE_ATTRIBUTE_READONLY);   
  34. }   
  35. }   
  36. else   
  37. {   
  38. //不能复制文件  
  39. return;   
  40. }   
  41. if (!FindNextFile(hSearch, &FileData))   
  42. {   
  43. if (GetLastError() == ERROR_NO_MORE_FILES)   
  44. {   
  45. //遍历文件夹完成   
  46. fFinished = TRUE;   
  47. }   
  48. else   
  49. {   
  50. //找不到下一个文件  
  51. return;   
  52. }   
  53. }   
  54. }   
  55. FindClose(hSearch);  
  56. RemoveDirectory(finder.GetFilePath().GetBuffer(0));  
  57. }  
  58. }  
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()+"\*.*", &FileData);
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
{
//不能复制文件
return;
}
if (!FindNextFile(hSearch, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
{
//遍历文件夹完成
fFinished = TRUE;
}
else
{
//找不到下一个文件
return;
}
}
}
FindClose(hSearch);
RemoveDirectory(finder.GetFilePath().GetBuffer(0));
}
}

17.以一个文件夹的框架在另一个目录创建文件夹和空文件

[cpp] view plain copy
print ?
  1. WIN32_FIND_DATA FileData;   
  2. HANDLE hSearch;   
  3. DWORD dwAttrs;   
  4. char szDirPath[] = %%2;   
  5. char szNewPath[MAX_PATH];   
  6. char szHome[MAX_PATH];   
  7. BOOL fFinished = FALSE;   
  8. if (!CreateDirectory(szDirPath, NULL))   
  9. {  
  10. //不能创建新的目录   
  11. return;  
  12. }  
  13. hSearch = FindFirstFile(%%1+”\*.*”, &FileData);   
  14. if (hSearch == INVALID_HANDLE_VALUE)   
  15. {   
  16. return;   
  17. }   
  18. while (!fFinished)   
  19. {   
  20. lstrcpy(szNewPath, szDirPath);   
  21. lstrcat(szNewPath, FileData.cFileName);   
  22. HANDLE hFile=CreateFileHandle hFile=CreateFile(szNewPath,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_SEQUENTIAL_SCAN,NULL);  
  23. if(!hFile)  
  24. {   
  25. //不能创建文件  
  26. return;   
  27. }   
  28. if (!FindNextFile(hSearch, &FileData))   
  29. {   
  30. if (GetLastError() == ERROR_NO_MORE_FILES)   
  31. {   
  32. //遍历文件夹完成   
  33. fFinished = TRUE;   
  34. }   
  35. else   
  36. {   
  37. //找不到下一个文件  
  38. return;   
  39. }   
  40. }   
  41. }   
  42. FindClose(hSearch);   
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+"\*.*", &FileData);
if (hSearch == INVALID_HANDLE_VALUE)
{
return;
}
while (!fFinished)
{
lstrcpy(szNewPath, szDirPath);
lstrcat(szNewPath, FileData.cFileName);
HANDLE hFile=CreateFileHandle hFile=CreateFile(szNewPath,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_SEQUENTIAL_SCAN,NULL);
if(!hFile)
{
//不能创建文件
return;
}
if (!FindNextFile(hSearch, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
{
//遍历文件夹完成
fFinished = TRUE;
}
else
{
//找不到下一个文件
return;
}
}
}
FindClose(hSearch); 

18.复制文件

[cpp] view plain copy
print ?
  1. CopyFile(%%1,%%2,true)  
CopyFile(%%1,%%2,true)

19.复制一个文件夹下所有的文件到另一个目录

[cpp] view plain copy
print ?
  1. //#include <string>  
  2. using std::string;  
  3. char sep=‘/’;  
  4. #ifdef _WIN32  
  5. sep=’\’;  
  6. #endif  
  7. CFileFind finder;   
  8. BOOL bWorking = finder.FindFile(%%1+“\*.*”);   
  9. while (bWorking)   
  10. {   
  11. bWorking = finder.FindNextFile();  
  12. if(!finder.IsDirectory() || finder.IsDots()){  
  13. string s(finder.GetFileName());  
  14. CString sourcefile(%%1);  
  15. if(s.rfind(sep,s.length())!=string::npos)  
  16. {  
  17. sourcefile=sourcefile+”\”+s.substr(i+1,s.length()-i);  
  18. CString targetfile(s.substr(i+1,s.length()-i));  
  19. targetfile=%%2+”\”+targetfile;  
  20. CopyFile(sourcefile.GetBuffer(0),targetfile.GetBuffer(0),true);  
  21. }  
  22. }  
  23. }  
//#include <string>
using std::string;
char sep='/';
#ifdef _WIN32 sep='\'; #endif CFileFind finder; BOOL bWorking = finder.FindFile(%%1+"\*.*"); while (bWorking) { bWorking = finder.FindNextFile(); if(!finder.IsDirectory() || finder.IsDots()){ string s(finder.GetFileName()); CString sourcefile(%%1); if(s.rfind(sep,s.length())!=string::npos) { sourcefile=sourcefile+"\"+s.substr(i+1,s.length()-i); CString targetfile(s.substr(i+1,s.length()-i)); targetfile=%%2+"\"+targetfile; CopyFile(sourcefile.GetBuffer(0),targetfile.GetBuffer(0),true); } } }

20.提取扩展名

[cpp] view plain copy
print ?
  1. //#include <string>  
  2. using std::string;  
  3. string s(%%1);  
  4. size_t i=s.rfind(‘.’,s.length());  
  5. if(i!=string::npos)  
  6. CString %%2(s.substr(i+1,s.length()-i));  
  7. else  
  8. CString %%2=”“;  
//#include <string>
using std::string;
string s(%%1);
size_t i=s.rfind('.',s.length());
if(i!=string::npos)
CString %%2(s.substr(i+1,s.length()-i));
else
CString %%2="";

21.提取文件名

[cpp] view plain copy
print ?
  1. //#include <string>  
  2. using std::string;  
  3. string s(%%1);  
  4. char sep=‘/’;  
  5. #ifdef _WIN32  
  6. sep=’\’;  
  7. #endif  
  8. size_t i=s.rfind(sep,s.length());  
  9. if(i!=string::npos)  
  10. CString %%2(s.substr(i+1,s.length()-i));  
  11. else  
  12. CString %%2=”“;  
//#include <string>
using std::string;
string s(%%1);
char sep='/';
#ifdef _WIN32 sep='\'; #endif size_t i=s.rfind(sep,s.length()); if(i!=string::npos) CString %%2(s.substr(i+1,s.length()-i)); else CString %%2="";

22.提取文件路径

[cpp] view plain copy
print ?
  1. //#include <string>  
  2. using std::string;  
  3. string s(%%1);  
  4. char sep=‘/’;  
  5. #ifdef _WIN32  
  6. sep=’\’;  
  7. #endif  
  8. size_t i=s.rfind(sep,s.length());  
  9. if(i!=string::npos)  
  10. CString %%2(s.substr(0,i));  
  11. else  
  12. CString %%2=”“;  
//#include <string>
using std::string;
string s(%%1);
char sep='/';
#ifdef _WIN32 sep='\'; #endif size_t i=s.rfind(sep,s.length()); if(i!=string::npos) CString %%2(s.substr(0,i)); else CString %%2="";

23.替换扩展名

[cpp] view plain copy
print ?
  1. //#include <string>  
  2. using std::string;  
  3. string s(%%1);  
  4. string newExt(%%2);  
  5. string::size_type i=s.rfind(’.’,s.length());  
  6. if(i!=string::npos)  
  7. s.replace(i+1,newExt.length(),newExt);  
  8. CString %%3(s);  
//#include <string>
using std::string;
string s(%%1);
string newExt(%%2);
string::size_type i=s.rfind('.',s.length());
if(i!=string::npos)
s.replace(i+1,newExt.length(),newExt);
CString %%3(s);

24.追加路径

[cpp] view plain copy
print ?
  1. //#include <string>  
  2. //#include <cstdlib>  
  3. //#include <boost/filesystem/operations.hpp>  
  4. //#include <boost/filesystem/fstream.hpp>  
  5. using namespace std;  
  6. using namespace boost::filesystem;  
  7. try {  
  8. path p1=complete(path(%%2,native),  
  9. path(%%1,native));  
  10. path p2=system_complete(path(%%2,native));  
  11. CString %%3(p3);  
  12. }  
  13. catch(exception& e){  
  14. //e.what();  
  15. }  
//#include <string>
//#include <cstdlib>
//#include <boost/filesystem/operations.hpp>
//#include <boost/filesystem/fstream.hpp>
using namespace std;
using namespace boost::filesystem;
try {
path p1=complete(path(%%2,native),
path(%%1,native));
path p2=system_complete(path(%%2,native));
CString %%3(p3);
}
catch(exception& e){
//e.what();
}

25.移动文件

[cpp] view plain copy
print ?
  1. MoveFile(%%1,%%2);  
MoveFile(%%1,%%2);

26.移动一个文件夹下所有文件到另一个目录

[cpp] view plain copy
print ?
  1. //#include <string>  
  2. using std::string;  
  3. char sep=‘/’;  
  4. #ifdef _WIN32  
  5. sep=’\’;  
  6. #endif  
  7. CFileFind finder;   
  8. BOOL bWorking = finder.FindFile(%%1+“\*.*”);   
  9. while (bWorking)   
  10. {   
  11. bWorking = finder.FindNextFile();  
  12. if(!finder.IsDirectory() || finder.IsDots()){  
  13. string s(finder.GetFileName());  
  14. CString sourcefile(%%1);  
  15. if(s.rfind(sep,s.length())!=string::npos)  
  16. {  
  17. sourcefile=sourcefile+”\”+s.substr(i+1,s.length()-i);  
  18. CString targetfile(s.substr(i+1,s.length()-i));  
  19. targetfile=%%2+”\”+targetfile;  
  20. MoveFile(sourcefile.GetBuffer(0),targetfile.GetBuffer(0),true);  
  21. }  
  22. }  
  23. }  
//#include <string>
using std::string;
char sep='/';
#ifdef _WIN32 sep='\'; #endif CFileFind finder; BOOL bWorking = finder.FindFile(%%1+"\*.*"); while (bWorking) { bWorking = finder.FindNextFile(); if(!finder.IsDirectory() || finder.IsDots()){ string s(finder.GetFileName()); CString sourcefile(%%1); if(s.rfind(sep,s.length())!=string::npos) { sourcefile=sourcefile+"\"+s.substr(i+1,s.length()-i); CString targetfile(s.substr(i+1,s.length()-i)); targetfile=%%2+"\"+targetfile; MoveFile(sourcefile.GetBuffer(0),targetfile.GetBuffer(0),true); } } }

27.指定目录下搜索文件

[cpp] view plain copy
print ?
  1. CString strFileTitle;  
  2. CFileFind finder;  
  3. BOOL bWorking = finder.FindFile  (“C:\windows\sysbkup\*.cab”);  
  4. while(bWorking)  
  5. {  
  6. bWorking=finder.FindNextFile();  
  7. strFileTitle=finder.GetFileTitle();  
  8. }  
CString strFileTitle;
CFileFind finder;
BOOL bWorking = finder.FindFile
("C:\windows\sysbkup\*.cab");
while(bWorking)
{
bWorking=finder.FindNextFile();
strFileTitle=finder.GetFileTitle();
}

最后

以上就是哭泣毛豆为你收集整理的MFC文件操作大全(一)的全部内容,希望文章能够帮你解决MFC文件操作大全(一)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部