当前位置: 移动技术网 > IT编程>开发语言>c# > .NET创建、删除、复制文件夹及其子文件的实例方法

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

2019年07月18日  | 移动技术网IT编程  | 我要评论
复制代码 代码如下: 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());

            }

        }


    }

}
 

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网