文件(文件夹)删除拷贝操作类

文件(文件夹)相关操作.以下各种讨论基于Windows+VC7.0开发环境.

实现文件(文件夹)操作的方式和函数多种多样,在这里我们只是很浅显讨论其中的一两中方法的应用.如果你想了解更多的请参考你编译系统的的帮助文件.也可以和我讨论:

MSN:Ugg_xchj@hotmail.com

为了更好的对文件(文件夹)进行操作,我们先讲解一些基本知识.最后我们将实现一个基于我们自己方法的文件(文件夹)create,copy,delete等操作的类.,如果你对文件(文件夹)操作已经非常熟悉,可以跳过前边部分;在这个过程中,我们分别用API方式,和用C/C++自身附带的文件操作方式进行文件操作.

1:查找一个文件是否存在;

在打开一个文件前,判断一个文件是否存在很重要.我们可以通过CFileFind类来查找指定目录的下的文件是否存在,我们可以借助MFC,使用Windows API函数.

CFileFind find;// 定义find对象.

BOOL bState =find.FindFile(_T("c://temp/a.txt"));// 输入要查找的文件名

if(bState)

{

     AfxMessageBox(_T("找到文件"));
     // 找到文件相应处理

}

else

{

     AfxMessageBox(_T("没有找到文件是否创建"));

// 是否创建文件

}

这样我们就可以判断一个文件是否存在了.

你也可以用PathFileExists()函数判断文件是否存在,需要包括#include <shlwapi.h>库文件

2:创建,复制,删除一个文件.

复制,删除一个文件我们可以使用windows API函数来完成,我们分别来实现.

请记住一点我们在操作文件时,不能对文件目录进行创建.举个例子说明:

如果我们当前目录是C:/temp/在这个目录下没有存在C:/temp/temp,如果我们创建,复制,删除一个文件C:/temp/temp/a.txt都将失败.也正是因为这一点,我才觉的有必要写这片文章.

1)文件创建

我们可以使用系统的CreateFile不过参数比较多,应用比较复杂,可以用这个函数创建普通文件,也就创建管道(PIPE)可以用于网络,也就用于本地等.我们的目的就是实现简单的文件操作所以没有应用这么复杂的函数.

CFile file(_T("C://temp/a.txt"),CFile::modeCreate|CFile::readOnly);

     // 我们可以用CFile类,当然象STL中fstream,ostream,C中的fopen都可以,

     // 以创建模式打开一个文件CFile::modeCreate,STL中是ios_base::trunc

     // 如果文件C:/temp/a.txt存在,我们就读取文件,如果不存在我们就创建

2)文件复制

CopyFile(_T("C://temp/a.txt"),T("C://temp/b.txt"),true);

     // CopyFile参数说明,参数1:要复制的文件名,2:复制文件的新文件名,

     // 3;是否覆盖,如果发现参数2指定的文件名已经存在,当为true是表示

     // 覆盖,false时表示不覆盖.

     // 说明.输入的参数2不能包括新目录内,记此函数只能创建文件,不能创建文件夹

3)文件删除

DeleteFile(_T("C://temp/a.txt"));

     // 参数说明,参数表示要删除的文件名

 

3:创建删除一个目录(文件夹)

如何系统创建一个目录和文件夹.

1):创建一个目录

CreateDirectory(_T("C:/temp"),NULL);

     // 第一个参数是要创建的文件目录名,第二个参数是文件夹的属性.

     // 记住:我们只能从一级目录创建一级目录.

2)删除一个目录

RemoveDirectory(_T("C:/temp"));

     // 删除目录,

     // 记住:只能从内层目录一层一层向外删除,删除目录时,首先要删除里面的文件,不然无法删除

 

应用上面基本知识,我们定义一个自己的类,实现文件(文件夹)删除复制,以及同级文件夹的大小,文件夹内文件的数量.定义如下操作.

// 拷贝文件

void UCopy(LPCTSTR sOriginalFile,LPCTSTR sNewFile,bool bSkipIfExists = false);

// 拷贝文件夹

void UCopyFolder(LPCTSTR sOriginalFolder,LPCTSTR sNewFolder,bool bSkipIfExists = false);

// 获取文件大小,字节数

long UGetFileBytesSize(LPCTSTR sOriginalFile);

// 获取文件夹的大小,字节数

long UGetFolderBytesSize(LPCTSTR szFolderr,bool bSubFolder = true);

// 创建文件夹

bool UCreateFolder(LPCTSTR szFolde);

// 获得文件夹内文件数量

int UGetFolderFiles(LPCTSTR szFolder,bool bSubFolder = true);

// 删除文件(最后一项指定是否彻底删除,彻底删除后数据无法恢复)

void UDeleteFile(LPCTSTR szFile,bool bQuietDelete = false);

// 删除文件夹(最后一项指定是否彻底删除,,彻底删除后数据无法恢复)

void UDeleteFolder(LPCTSTR szFolder, bool bSubFolder = true, bool bQuietDelete = false);

// 关闭应用程序(如果删除,复制应用程序时,应用程序必须是关闭状态的),需要用户判断关闭.

bool UCloseApplication(LPCTSTR szFolder,bool bAskUser = false);

 

如何使用?

 

在要使用的文件中加入.

#include "UFile.h"

 

定义如下变量

CUFile file;

 

可以使用功能

file.UCloseApplication("C://temp//cmd.exe",true);

file.UCopyFolder("C://temp","D://temp");

int folderfiels = file.UGetFolderFiles("C://temp");

long foldersize = file.UGetFolderBytesSize("D://temp");

foldersize = file.UGetFileBytesSize("D://temp//cmd.exe");

file.UDeleteFolder("D://temp");

file.UCreateFolder("C://temp//temp//temp//temp//tes.txt");

file.UCopy("C://temp//test.htm","D://temp//test.htm");

file.UDeleteFile("C://temp//test.htm",true);

下载这类请到http://www.exuetang.net

时间: 2024-12-30 21:48:57

文件(文件夹)删除拷贝操作类的相关文章

asp.net文件与文件夹操作类(文件删除,创建,目录删除)

下面这个文件操作类,可以删除目录并且不为空的目录哦,也可以创建文件写文件,删除文件以前递归操作目录. using system.io; using system.web; namespace sec {     /**////     /// 对文件和文件夹的操作类     ///     public class filecontrol     {          public filecontrol()          {          }          /**////     

PHP文件操作类(文件和文件夹创建,复制,移动和删除)

实例  代码如下 复制代码 <?php /** * 操纵文件类 * * 例子: * FileUtil::createDir('a/1/2/3');                    测试建立文件夹 建一个a/1/2/3文件夹 * FileUtil::createFile('b/1/2/3');                    测试建立文件        在b/1/2/文件夹下面建一个3文件 * FileUtil::createFile('b/1/2/3.exe');          

Asp.net(c#)常用文件操作类封装 移动 复制 删除 上传 下载等

Asp.net(c#)中常用文件操作类封装 包括:移动 复制 删除 上传 下载等 using System; using System.Configuration; using System.Data; using System.IO; using System.Text; using System.Threading; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.Ht

Asp.net对文件夹和文件的操作类

asp.net using System;using System.IO;using System.Web; namespace SEC{    /**//// <summary>    /// 对文件和文件夹的操作类    /// </summary>    public class FileControl    {        public FileControl()        {                    }        /**//// <summa

asp的Fso文件/文件夹操作类

和前面提到的一样,这个也只是把一些函数压在一起.实际上用一些函数集的方法放程序中更好. 主要功能: 1,创建删除文件夹 2,获取某个文件夹里的文件夹名称和个数 3,获取某个文件夹里的文件名称和个数 4,检查某个文件夹是否存在 5,检查某个文件是否存在 6,删除文件 7,读取某个文件的内容 7,创建一个文件,并把内容写到这个文件里面 总的来说,功能就分两个,一个是文件操作,一个是文件夹操作.我只是根据我的那个"在线作业管理系统"的需求写的,并不适合所有人... <% '******

Web项目: Java在部署项目的WebRoot下建立文件夹(附上文件操作类)

public boolean doTest(){ String path="../webapps/FileTest/reportFiles/aa.jsp";//FileTest为自己的项目名 reportFiles为自己建立的文件夹 aa.jsp为自己建立的文件 boolean isDone = false; File file = new File(path); if(file.exists()) throw new RuntimeException("File: &quo

php文件操作类(建立,写入,删除,修改,复制,移动,创建目录)

实例1  代码如下 复制代码 <?php    /*   文件名:ClassFile.php   功能:面向对象,文件操作类(查看文件,删除文件,上传文件)   作者:感染源   时间:2007-1-11  */    class ClassFile  {   private $dir_name;   private $file_name;   private $dh;   //private $file_path;       //构造函数,打开工作文件目录   function __cons

asp.net常用的文件与文件夹操作类

asp教程.net常用的文件与文件夹操作类 #region 引用命名空间 using System; using System.Collections.Generic; using System.Text; using System.IO; #endregion namespace CommonUtilities {     /// <summary>     /// 文件操作类     /// </summary>     public class FileHelper    

JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤

JAVA之旅(二十八)--File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤 我们可以继续了,今天说下File 一.File概述 文件的操作是非常重要的,我们先来看下他的基本概念 用于将文件或者文件夹封装成对象 方便对文件和文件夹的操作 File对象可以作为参数传递给流的构造函数 我们写个小例子先 package com.lgl.hellojava; import java.io.File; public class HelloJJAVA {