c# 文件相关操作(获取文件名;复制文件夹和文件)

通过文件路径获取文件名

    string fullPath = @"F:\栅格影像带参数投影界面\数据\TestConvert\aaa.tif";
    string filename = System.IO.Path.GetFileName(fullPath);//文件名  aaa.tif
    string extension = System.IO.Path.GetExtension(fullPath);//扩展名  .tif
    string fileNameWithoutExtension =System.IO.Path.GetFileNameWithoutExtension(fullPath);// 没有扩展名的文件名 aaa

将一个文件夹及其里面的所有内容(文件和文件夹)复制到指定路径

(转自:c#将一个文件夹及其里面的所有内容(文件和文件夹)复制到指定路径_爱学习的菜鸡bmy的博客-CSDN博客

        public void copyDir(string srcPath, string aimPath)
        {
            string srcdir = "";
            try
            {
                if (System.IO.Directory.Exists(srcPath))
                {

                    //如果不存在目标路径,则创建之
                    if (!System.IO.Directory.Exists(aimPath))
                    {
                        System.IO.Directory.CreateDirectory(aimPath);
                    }
                    //令目标路径为aimPath\srcPath
                    srcdir = System.IO.Path.Combine(aimPath, System.IO.Path.GetFileName(srcPath));
                    //如果源路径是文件夹,则令目标目录为aimPath\srcPath\
                    if (Directory.Exists(srcPath))
                        srcdir += Path.DirectorySeparatorChar;
                    // 如果目标路径不存在,则创建目标路径
                    if (!System.IO.Directory.Exists(srcdir))
                    {
                        System.IO.Directory.CreateDirectory(srcdir);
                    }
                    //获取源文件下所有的文件
                    String[] files = Directory.GetFileSystemEntries(srcPath);
                    foreach (string element in files)
                    {
                        //如果是文件夹,循环
                        if (Directory.Exists(element))
                            copyDir(element, srcdir);
                        else
                            File.Copy(element, srcdir + Path.GetFileName(element), true);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("复制失败");
                //File.Delete(srcdir);
            }
        }

方法二:

 /// <summary>
 /// 复制文件夹中的所有内容
 /// </summary>
 /// <param name="sourceDirPath">源文件夹目录</param>
 /// <param name="saveDirPath">指定文件夹目录</param>
   public void CopyDirectory(string sourceDirPath, string saveDirPath)
        {
            try
            {
                if (!Directory.Exists(saveDirPath))
                {
                    Directory.CreateDirectory(saveDirPath);
                }
                string[] files = Directory.GetFiles(sourceDirPath);
                foreach (string file in files)
                {
                    string pFilePath = saveDirPath + "\\" + Path.GetFileName(file);
                    if (File.Exists(pFilePath))
                        continue;
                    File.Copy(file, pFilePath, true);
                }

                string[] dirs = Directory.GetDirectories(sourceDirPath);
                foreach (string dir in dirs)
                {
                    CopyDirectory(dir, saveDirPath + "\\" + Path.GetFileName(dir));
                }
            }
            catch (Exception ex)
            {

            }
        }    

删除文件夹及文件夹下文件

        /// <summary>
        /// 删除目录
        /// </summary>
        /// <param name="dir">要删除的目录</param>
        public static void DeleteFolder(string dir)
        {
            if (System.IO.Directory.Exists(dir))
            {
                string[] fileSystemEntries = System.IO.Directory.GetFileSystemEntries(dir);
                for (int i = 0; i < fileSystemEntries.Length; i++)
                {
                    string text = fileSystemEntries[i];
                    if (System.IO.File.Exists(text))
                    {
                        System.IO.File.Delete(text);
                    }
                    else
                    {
                        DeleteFolder(text);
                    }
                }
                System.IO.Directory.Delete(dir);
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值