C# 文件/文件夹一般操作(File、Directory)

     C#常用文件操作在 System.IO 命名类库中有:File、Directory;

   一、 1、文件(File) 操作:

    文件创建:File.Create(filePath); ----在指定路径中创建或覆盖文件

    文件删除:File.Delete(filePath);

    判断文件是否存在:File.Exists(filePath)

    复制文件到另一地址:File.Copy(string sourceFileName, string destFileName); ----将现有文件复制到新文件。 不允许覆盖同名的文件。

              File.Copy(string sourceFileName, string destFileName, bool overwrite);  ----将现有文件复制到新文件。 是否覆盖同名的文件

    文件移动:File.Move(string sourceFileName, string destFileName); ----将指定文件移到新位置,提供要指定新文件名的选项

      2、File基本信息 获取

       FileInfo fileInfo=new FileInfo(filePath)  ----为文件路径的包装的 System.IO.FileInfo 类的新实例;  filePath:新文件的完全限定名或相对文件名。 路径不要以目录分隔符结尾

   二、目录/文件夹(Directory) 操作

    文件夹创建:Directory.CreateDirectory(directPath)

    文件夹删除:Directory.Delete(directPath)  ----从指定路径删除空目录。

          Directory.Delete(directPath,bIsDeleteChildren)  ----bIsDeleteChildren  删除指定的目录,并删除该目录中的所有子目录和文件(如果表示)

    判断文件夹是否存在:Directory.Exists(directPath)

  三、基本封装方法:

    1、获取指定目录下所有文件或特定类型的文件    

        /// <summary>
        /// 获得目录下所有文件或指定文件类型文件(包含所有子文件夹)
        /// </summary>
        /// <param name="path">文件夹路径</param>
        /// <param name="extName">扩展名可以多个 例如 .mp3.wma.rm</param>
        /// <returns></returns>
        public static List<FileInfo> GetFiles(string path, string extName)
        {
            try
            {
                List<FileInfo> lst = new List<FileInfo>();
                string[] dir = Directory.GetDirectories(path); //文件夹列表   
                DirectoryInfo fdir = new DirectoryInfo(path);
                FileInfo[] file = fdir.GetFiles();
                //FileInfo[] file = Directory.GetFiles(path); //文件列表   
                if (file.Length != 0 || dir.Length != 0) //当前目录文件或文件夹不为空                   
                {
                    foreach (FileInfo f in file) //显示当前目录所有文件   
                    {
                        if (extName.ToLower().IndexOf(f.Extension.ToLower()) >= 0)
                        {
                            lst.Add(f);
                        }
                    }
                    foreach (string d in dir)
                    {
                        GetFiles(d, extName);//递归   
                    }
                }
                return lst;
            }
            catch (Exception ex)
            {
                // LogHelper.WriteLog(ex);
                throw ex;
            }
        }

    2、获取文件转换后大小  

        /// <summary>
        /// 获取文件大小字节转换
        /// Math.Pow:获取指定数字的指定次幂
        /// </summary>
        /// <param name="fileSize"></param>
        /// <returns></returns>
        public static string ReturnFileSize(long fileSize)
        {
            var num = 1024.00; //byte

            if (fileSize < num)
                return fileSize + "B";
            if (fileSize < Math.Pow(num, 2))
                return (fileSize / num).ToString("f2") + "K"; //kb
            if (fileSize < Math.Pow(num, 3))
                return (fileSize / Math.Pow(num, 2)).ToString("f2") + "M"; //M
            if (fileSize < Math.Pow(num, 4))
                return (fileSize / Math.Pow(num, 3)).ToString("f2") + "G"; //G

            return (fileSize / Math.Pow(num, 4)).ToString("f2") + "T"; //T
        }

      3、未完待续。。。

    以上为目前记录,后续将继续补充。

  

猜你喜欢

转载自www.cnblogs.com/skyheaving/p/12387336.html
今日推荐