欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.NET创建、删除、复制文件夹及其子文件的实例方法

程序员文章站 2023-12-04 15:52:28
复制代码 代码如下: using system; using system.collections.generic; using system.linq;...

复制代码 代码如下:

 using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.io;


namespace winformsapp_operatefileandfolder

{

    public class operatefilefolder

    {

        /// <summary>

        /// 创建文件夹

        /// </summary>

        public string createfolder(string argpath)

        {

            string returnstr = "";

            try

            {

                if (system.io.directory.exists(argpath))

                {

                    returnstr = "该文件夹已经存在";

 

                    return returnstr;

                }

                else

                {

                    system.io.directoryinfo dirinfo = system.io.directory.createdirectory(argpath);

                    returnstr = "成功创建该文件夹!创建时间为:" + system.io.directory.getcreationtime(argpath);

                }

            }

            catch (exception ee)

            {

                returnstr = "处理失败! 失败的原因是:" + ee.tostring();

            }

            return returnstr;

        }
        

        /// <summary>

        /// 递归删除文件夹及文件

        /// </summary>

        /// <param name="dir"></param>

        public void deletefolder(string dir)

        {

            //取消屏蔽 执行该方法后,可以保留根文件夹(仅删除目录下的所有子)

            //// 检查目标目录是否以目录分割字符结束如果不是则添加之

            //if (dir[dir.length - 1] != path.directoryseparatorchar)

            //    dir += path.directoryseparatorchar;

 

            if (directory.exists(dir)) //如果存在这个文件夹删除之

            {

                foreach (string d in directory.getfilesystementries(dir))

                {

                    if (file.exists(d))

                        file.delete(d); //直接删除其中的文件

                    else

                        deletefolder(d); //递归删除子文件夹

                }

                directory.delete(dir); //删除已空文件夹

                console.write(dir + " 文件夹删除成功");

            }

            else

                console.write(dir + " 该文件夹不存在"); //如果文件夹不存在则提示

        }

         
        /// <summary>

        /// 实现一个静态方法将指定文件夹下面的所有内容copy到目标文件夹下面

        /// 如果目标文件夹为只读属性就会报错。

        /// </summary>

        public static void copydir(string srcpath, string aimpath)

        {

            try

            {

                // 检查目标目录是否以目录分割字符结束如果不是则添加之

                if (aimpath[aimpath.length - 1] != path.directoryseparatorchar)

                    aimpath += path.directoryseparatorchar;

                // 判断目标目录是否存在如果不存在则新建之

                if (!directory.exists(aimpath)) directory.createdirectory(aimpath);

                // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组

                // 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法

                // string[] filelist = directory.getfiles(srcpath);

                string[] filelist = directory.getfilesystementries(srcpath);

                // 遍历所有的文件和目录

                foreach (string file in filelist)

                {

                    // 先当作目录处理如果存在这个目录就递归copy该目录下面的文件

                    if (directory.exists(file))

                        copydir(file, aimpath + path.getfilename(file));

                    // 否则直接copy文件

                    else

                        file.copy(file, aimpath + path.getfilename(file), true);

                }

            }

            catch (exception e)

            {

                system.windows.forms.messagebox.show(e.tostring());

            }

        }


    }

}