文件操作-去掉只读和删除子目录和文件

创建文件夹,保存文件的代码:szFolder为文件夹绝对路径,szPath为更新的文件
 
  if(!PathFileExists(szFolder))//如果该文件夹不存在则创建文件夹
   ::CreateDirectory(szFolder,NULL);
 
  CFileFind finder;
  CFile file;
  if (finder.FindFile(szPath))//如果此文件已存在则提示用户是否更新
  {
   if (IDNO  == AfxMessageBox(_TT("This file is already exit,do you want replace it?"),MB_YESNO))
    return;
   else
   {
    CFileStatus status;
    file.GetStatus(szPath,status);
    status.m_attribute = 0x20;//修改文件属性为可写
    file.SetStatus(szPath,status);
   }
   
  }
 
        file.Open(szPath,CFile::modeCreate|CFile::modeWrite);//重新创建这个文件
  file.Close();
 
 
下面是删除文件夹及其子文件夹及其所有包含文件的代码:
BOOL DeleteDirectory(CString sDirectory)
{
    CString sPath = sDirectory;
    sPath += "//*.*";
 
    CFileFind finder;
    CString sFileName;
    BOOL bIsFindFile = finder.FindFile(sPath);
    while (bIsFindFile)
    {
        bIsFindFile = finder.FindNextFile();
        if (!finder.IsDots())
        {
            sFileName = finder.GetFilePath();
            if (finder.IsDirectory())
            {
                ::SetFileAttributes(sFileName, FILE_ATTRIBUTE_ARCHIVE);
                if (!DeleteDirectory(sFileName))
                {
                    return FALSE;
                }
            }
            else
            {
                ::SetFileAttributes(sFileName, FILE_ATTRIBUTE_ARCHIVE);
                ::DeleteFile(sFileName);
            }
        }
    }
    finder.Close();
    ::SetFileAttributes(sDirectory, FILE_ATTRIBUTE_ARCHIVE);
    if (!::RemoveDirectory(sDirectory))
    {
        return FALSE;
    }
    return TRUE;
}

Trackback:http://blog.csdn.net/yzb_diablos/archive/2006/04/25/676330.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值