博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#文件、文件夹操作
阅读量:6767 次
发布时间:2019-06-26

本文共 8474 字,大约阅读时间需要 28 分钟。

hot3.png

using System;using System.Collections.Generic;using System.Linq;using System.Windows;using System.Text;using System.IO; //文件操作所属的命名空间。namespace FileOperate{    public class FileOperate//对文件的操作类    {        //删除文件方法。        public bool DeletFile(string Filefullpath)        {            if (File.Exists(Filefullpath) == true)  //判断该文件是否存在。            {                File.SetAttributes(Filefullpath, FileAttributes.Normal);//将删除文件的属性设为一般属性。                File.Delete(Filefullpath);                return true;            }            else            {                return false;            }        }        //获取文件名方法。        public string GetFileName(string Filefullpath)  //获取文件名。针对没有扩展名的情况。        {            if (File.Exists(Filefullpath) == true)            {                FileInfo F = new FileInfo(Filefullpath); //利用FileInfo的.Name方法获取文件名。                return F.Name;            }            else            {                return null;            }        }        public string GetFileName(string Filefullpath, bool IncludeExtension)  //重载获取文件名方法。针对有扩展名的情况。        {            if (File.Exists(Filefullpath) == true)            {                FileInfo F = new FileInfo(Filefullpath);                if (IncludeExtension == true)                {                    return F.Name;                }                else                {                    return F.Name.Replace(Filefullpath, Filefullpath + "");//第一个参数为原文件名,后一个参数为替换后的文件名。                }            }            else            {                return null;            }        }        //获取文件扩展名的方法。        public string GetFileExtension(string Filefullpath)  //获取文件的扩展名。        {            if (File.Exists(Filefullpath) == true)            {                FileInfo F = new FileInfo(Filefullpath);                return F.Extension;            }            else             {                return null;            }        }        //打开文件的方法。        public bool OpenFile(string Filefullpath)        {            if (File.Exists(Filefullpath))            {                System.Diagnostics.Process.Start(Filefullpath);                return true;            }            else            {                return false;            }        }        //获取文件大小的方法。        public string GetFileSize(string Filefullpath)        {            if (File.Exists(Filefullpath) == true)            {                FileInfo F = new FileInfo(Filefullpath);                long FL = F.Length;  //注意:这里获取文件的大小要用到long型数据,因为F.Length为long型。                if (FL > 1024 * 1024 * 1024)                {                    //    KB     MB     GB                    return System.Convert.ToString(Math.Round((FL + 0.00) / (1024 * 1024 * 1024), 2))+"GB";                }                else if (FL > 1024 * 1024)                {                    return System.Convert.ToString(Math.Round((FL + 0.00) / (1024 * 1024), 2) )+ "MB";                }                else                  {                    return System.Convert.ToString(Math.Round((FL + 0.00) / (1024 ), 2) )+ "KB";                }            }            else            {                return null;            }        }        //将文件转换成二进制数。用来处理图片等文件时用。        public byte[] FileToStreamByte(string Filefullpath)        {          byte[] FileData=null;          if (File.Exists(Filefullpath) == true)          {              FileStream FS = new FileStream(Filefullpath, FileMode.Open);              FileData = new byte[FS.Length];              FS.Read(FileData, 0, FileData.Length);//参数1:读取的数组名,参数2:起始位置,参数3:读取长度。              FS.Close();              return FileData;          }          else           {              return null;          }        }        //将二进制数据转换成文件。        public bool ByteStreamToFile(string CreateFilefullpath, byte[] SteamByte)        {            try            {                if (File.Exists(CreateFilefullpath) == true)                {                    File.Delete(CreateFilefullpath);   //如果该路径存在文件,删除该文件,该地址留给转换后的文件。                  }                FileStream FS;                FS=File.Create(CreateFilefullpath);                    FS.Write(SteamByte, 0, SteamByte.Length);                    FS.Close();                    return true;                          }            catch             {                return false;            }        }        //为了实现不同系统间的交互,要利用XML传递数据,传递XML文件必须对它进行加密,        //进行加密即是:序列化XML文件        public bool SerializeXmlFile(string Filefullpath)        {            try            {                System.Data.DataSet DS = new System.Data.DataSet();                DS.ReadXml(Filefullpath);  //将要序列化的数据读入DataSet数据集。                FileStream FS = new FileStream(Filefullpath + ".tmp", FileMode.OpenOrCreate);                //要序列化一个文件,需调用的系统方法如下。                System.Runtime.Serialization.Formatters.Binary.BinaryFormatter FT = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();                FT.Serialize(FS, DS);//参数1:图形要序列化成的流,参数2:要序列化的数据。                FS.Close();                DeletFile(Filefullpath);                File.Move(Filefullpath + ".tmp", Filefullpath);                return true;            }            catch { return false; }        }        //反序列化XML文件。        public bool DeserializeFile(string Filefullpath)        {            try            {                System.Data.DataSet DS = new System.Data.DataSet();                DS.ReadXml(Filefullpath);                FileStream FS = new FileStream(Filefullpath, FileMode.Open);                System.Runtime.Serialization.Formatters.Binary.BinaryFormatter FT = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();                ((System.Data.DataSet)FT.Deserialize(FS)).WriteXml(Filefullpath + ".tmp");                FS.Close();                DeletFile(Filefullpath);                File.Move(Filefullpath + ".tmp", Filefullpath);                return true;            }            catch { return false; }        }    }    public class DirOperate //对文件夹的操作类。    {       public enum OperateOption       {         ExistDelet, //存在,删除再创建。         ExistReturn//存在,直接返回。       }        //创建文件夹。        public bool CreatDir(string DirFullPath,OperateOption DirOperateOption)        {            try            {                if (Directory.Exists(DirFullPath) == false)                {                    Directory.CreateDirectory(DirFullPath); //如果文件夹不存在,直接创建文件夹。                }                else if (DirOperateOption == OperateOption.ExistDelet)                {                    Directory.Delete(DirFullPath, true);                }                return true;            }            catch            {                return false;            }        }        //删除文件夹。        public bool DeletDir(string DirFullPath)        {            if (Directory.Exists(DirFullPath) == true)            {                Directory.Delete(DirFullPath);                return true;            }            else            {                return false;            }        }        //得到文件夹当前目录下的所有文件。        public string[] GetDir(string DirFullPath)        {             string[] FileList=null;            if (Directory.Exists(DirFullPath) == true)            {                FileList=Directory.GetFiles(DirFullPath,"*.*",SearchOption.TopDirectoryOnly);//参数1:文件夹路径,参数2:要搜索的文件格式,参数3:指定搜索范围(当前目录还是包含所有子目录);                            }            return FileList;        }        //得到文件夹目录下的所有文件。        public string[] GetDir(string DirFullPath, SearchOption SO)        {            string[] FileList = null;            if (Directory.Exists(DirFullPath) == true)            {                FileList = Directory.GetFiles(DirFullPath, "*.*", SO);            }            return FileList;        }        //搜索当前文件目录下的指定文件格式的文件。        public string[] GetDir(string DirFullPath, string SeacherPattern)        {            string[] FileList = null;            if (Directory.Exists(DirFullPath) == true)            {                FileList = Directory.GetFiles(DirFullPath, SeacherPattern);            }            return FileList;        }        //搜索文件目录下的所有指定文件格式的文件。        public string[] GetDir(string DirFullPath, string SeacherPattern,SearchOption SO)        {            string[] FileList = null;            if (Directory.Exists(DirFullPath) == true)            {                FileList = Directory.GetFiles(DirFullPath, SeacherPattern,SO);            }            return FileList;        }    }

转载于:https://my.oschina.net/zhangqs008/blog/200242

你可能感兴趣的文章
Cisco IPSec一些基本命令(参考)
查看>>
Ubuntu下管理启动服务
查看>>
第7章 解析HTML和XHTML
查看>>
openfire集群
查看>>
Incorrect syntax near the keyword 'User'
查看>>
ArrayList关键知识
查看>>
【更新】Excel组件Spire.XLS for .NET V7.12.109发布 | 修复多个重大bug
查看>>
Django之CSRF
查看>>
PDF文档创建组件Spire.PDF for .NET
查看>>
java.lang.Package.getAnnotation()方法实例
查看>>
centos 和rhel修改ip地址
查看>>
Python中类的继承及类的属性和方法总结
查看>>
【.NET开发之美】使用ComponentOne提高.NET DataMap中的加载速度
查看>>
slf4j配置和使用
查看>>
awk 用法(自己笔记)
查看>>
关于Spring 中的context:annotation-config
查看>>
mysql报Table 'XXX' is specified twice, both as a target for 'UPDATE'....
查看>>
端口80被占用,却死活找不到占用端口的程序
查看>>
java实现邮箱验证的功能
查看>>
制作可以随身携带的系统盘
查看>>