zoukankan      html  css  js  c++  java
  • 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、未完待续。。。

         脚本之家有一个专题,专门介绍文件操作:记录一下  https://www.jb51.net/Special/257.htm

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

      

  • 相关阅读:
    2.8Java专项测试复盘
    我的第一篇博客
    VS2010调试汇编
    socket学习
    DLL 共享数据学习
    PE学习
    char*,const char*和string的相互转换 + 三种版本字符串
    unresolved external symbol “symbol”(不确定的外部“符号”)。
    深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p
    volatile学习
  • 原文地址:https://www.cnblogs.com/skyheaving/p/12387336.html
Copyright © 2011-2022 走看看