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

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

——摘录自 博客园

C#常用文件操作

——摘录自 博客园

C#追加文件

StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt");     sw.WriteLine("追逐理想");     sw.WriteLine("kzlll");     sw.WriteLine(".NET笔记");     sw.Flush();     sw.Close();

C#拷贝文件

string OrignFile,NewFile;     OrignFile = Server.MapPath(".")+"\\myText.txt";     NewFile = Server.MapPath(".")+"\\myTextCopy.txt";     File.Copy(OrignFile,NewFile,true);

C#删除文件

string delFile = Server.MapPath(".")+"\\myTextCopy.txt";     File.Delete(delFile);

C#移动文件

string OrignFile,NewFile;     OrignFile = Server.MapPath(".")+"\\myText.txt";     NewFile = Server.MapPath(".")+"\\myTextCopy.txt";     File.Move(OrignFile,NewFile);

C#创建目录

// 创建目录c:\sixAge     DirectoryInfo d=Directory.CreateDirectory("c:\\sixAge");     // d1指向c:\sixAge\sixAge1     DirectoryInfo d1=d.CreateSubdirectory("sixAge1");     // d2指向c:\sixAge\sixAge1\sixAge1_1     DirectoryInfo d2=d1.CreateSubdirectory("sixAge1_1");     // 将当前目录设为c:\sixAge     Directory.SetCurrentDirectory("c:\\sixAge");     // 创建目录c:\sixAge\sixAge2     Directory.CreateDirectory("sixAge2");     // 创建目录c:\sixAge\sixAge2\sixAge2_1     Directory.CreateDirectory("sixAge2\\sixAge2_1");

将指定文件夹下面的所有内容copy到目标文件夹下面

 

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)       {        MessageBox.Show (e.ToString());       }      }

拷贝文件夹(包括子文件夹)到指定文件夹下,源文件夹和目标文件夹均需绝对路径. 格式: CopyFolder(源文件夹,目标文件夹);

 

public static void CopyFolder(string strFromPath,string strToPath)      {       //如果源文件夹不存在,则创建       if (!Directory.Exists(strFromPath))       {            Directory.CreateDirectory(strFromPath);       }               //取得要拷贝的文件夹名       string strFolderName = strFromPath.Substring(strFromPath.LastIndexOf("\\") + 1,strFromPath.Length - strFromPath.LastIndexOf("\\") - 1);               //如果目标文件夹中没有源文件夹则在目标文件夹中创建源文件夹       if (!Directory.Exists(strToPath + "\\" + strFolderName))       {            Directory.CreateDirectory(strToPath + "\\" + strFolderName);       }       //创建数组保存源文件夹下的文件名       string[] strFiles = Directory.GetFiles(strFromPath);            //循环拷贝文件       for(int i = 0;i < strFiles.Length;i++)       {        //取得拷贝的文件名,只取文件名,地址截掉。        string strFileName = strFiles[i].Substring(strFiles[i].LastIndexOf("\\") + 1,strFiles[i].Length - strFiles[i].LastIndexOf("\\") - 1);        //开始拷贝文件,true表示覆盖同名文件        File.Copy(strFiles[i],strToPath + "\\" + strFolderName + "\\" + strFileName,true);       }             //创建DirectoryInfo实例       DirectoryInfo dirInfo = new DirectoryInfo(strFromPath);       //取得源文件夹下的所有子文件夹名称       DirectoryInfo[] ZiPath = dirInfo.GetDirectories();       for (int j = 0;j < ZiPath.Length;j++)       {        //获取所有子文件夹名        string strZiPath = strFromPath + "\\" + ZiPath[j].ToString();           //把得到的子文件夹当成新的源文件夹,从头开始新一轮的拷贝        CopyFolder(strZiPath,strToPath + "\\" + strFolderName);       }      }

读取文本文件

private void ReadFromTxtFile()    {        if(filePath.PostedFile.FileName != "")        {            txtFilePath =filePath.PostedFile.FileName;            fileExtName = txtFilePath.Substring(txtFilePath.LastIndexOf(".")+1,3);                 if(fileExtName !="txt" && fileExtName != "TXT")            {                Response.Write("请选择文本文件");            }            else            {                StreamReader fileStream = new StreamReader(txtFilePath,Encoding.Default);                txtContent.Text = fileStream.ReadToEnd();                fileStream.Close();            }        }     }

读取日志文件

private void ReadLogFile()    {        /**从指定的目录以打开或者创建的形式读取日志文件        FileStream fs  = new FileStream(Server.MapPath("upedFile")+"\\logfile.txt", FileMode.OpenOrCreate, FileAccess.Read);             /**定义输出字符串        StringBuilder output = new StringBuilder();                /**初始化该字符串的长度为0        output.Length = 0;                /**为上面创建的文件流创建读取数据流        StreamReader read = new StreamReader(fs);                /**设置当前流的起始位置为文件流的起始点        read.BaseStream.Seek(0, SeekOrigin.Begin);                /**读取文件        while (read.Peek() > -1)         {            /**取文件的一行内容并换行            output.Append(read.ReadLine() + "\n");        }                /**关闭释放读数据流        read.Close();                /**返回读到的日志文件内容        return output.ToString();    }

写入日志文件

private void WriteLogFile(string input)    {            /**指定日志文件的目录        string fname = Server.MapPath("upedFile") + "\\logfile.txt";        /**定义文件信息对象        FileInfo finfo = new FileInfo(fname);             /**判断文件是否存在以及是否大于2K        if ( finfo.Exists && finfo.Length > 2048 )        {            /**删除该文件            finfo.Delete();        }        /**创建只写文件流        using(FileStream fs = finfo.OpenWrite())        {            /**根据上面创建的文件流创建写数据流            StreamWriter w = new StreamWriter(fs);                        /**设置写数据流的起始位置为文件流的末尾            w.BaseStream.Seek(0, SeekOrigin.End);                        /**写入“Log Entry : ”            w.Write("\nLog Entry : ");                        /**写入当前系统时间并换行            w.Write("{0} {1} \r\n", DateTime.Now.ToLongTimeString(),                DateTime.Now.ToLongDateString());                        /**写入日志内容并换行            w.Write(input + "\n");                        /**写入------------------------------------“并换行            w.Write("------------------------------------\n");                        /**清空缓冲区内容,并把缓冲区内容写入基础流            w.Flush();                        /**关闭写数据流            w.Close();        }    }

创建HTML文件

private void CreateHtmlFile()    {            /**定义和html标记数目一致的数组        string[] newContent = new string[5];        StringBuilder strhtml = new StringBuilder();        try         {            /**创建StreamReader对象            using (StreamReader sr = new StreamReader(Server.MapPath("createHTML") + "\\template.html"))             {                String oneline;                                /**读取指定的HTML文件模板                while ((oneline = sr.ReadLine()) != null)                 {                    strhtml.Append(oneline);                }                sr.Close();            }        }        catch(Exception err)        {            /**输出异常信息            Response.Write(err.ToString());        }        /**为标记数组赋值        newContent[0] = txtTitle.Text;//标题        newContent[1] = "BackColor='#cccfff'";//背景色        newContent[2] = "#ff0000";//字体颜色        newContent[3] = "100px";//字体大小        newContent[4] = txtContent.Text;//主要内容            /**根据上面新的内容生成html文件       try       {           /**指定要生成的HTML文件            string fname = Server.MapPath("createHTML") +"\\" + DateTime.Now.ToString("yyyymmddhhmmss") + ".html";                      /**替换html模版文件里的标记为新的内容           for(int i=0;i < 5;i++)           {               strhtml.Replace("$htmlkey["+i+"]",newContent[i]);           }           /**创建文件信息对象           FileInfo finfo = new FileInfo(fname);                      /**以打开或者写入的形式创建文件流           using(FileStream fs = finfo.OpenWrite())           {               /**根据上面创建的文件流创建写数据流                StreamWriter sw = new StreamWriter(fs,System.Text.Encoding.GetEncoding("GB2312"));                              /**把新的内容写到创建的HTML页面中               sw.WriteLine(strhtml);               sw.Flush();               sw.Close();           }                      /**设置超级链接的属性           hyCreateFile.Text = DateTime.Now.ToString("yyyymmddhhmmss")+".html";            hyCreateFile.NavigateUrl = "createHTML/"+DateTime.Now.ToString("yyyymmddhhmmss")+".html";        }        catch(Exception err)        {             Response.Write (err.ToString());        }    }

 

 

转载地址:http://bhajx.baihongyu.com/

你可能感兴趣的文章
phinx武林秘籍(上)
查看>>
计算网络带宽需求的正确姿势
查看>>
如何建立云环境下的性能测试策略
查看>>
论网站内容建设策略
查看>>
10月18日云栖精选夜读:解读OpenMessaging开源项目,阿里巴巴发起首个分布式消息领域的国际标准...
查看>>
如何把SVG小图片转换为 html字体图表
查看>>
MongDB的安装和基本操作 二(增删改查)
查看>>
RvmTranslator 3.1 is released
查看>>
WCF的三个名称/命名空间,你是否傻傻分不清楚?
查看>>
解析深度学习的未来十大趋势
查看>>
中桥国际:如何应对客户端计算趋势
查看>>
云栖长卷:一张图看懂云栖七年
查看>>
飞利浦的选择:传统IT系统迁移到云平台
查看>>
Ubuntu支持LinuxONE大型机:为云而生的强强新组合
查看>>
英特尔至强E7 v4上市,剑指Power
查看>>
IT部门不应该推迟的10个项目
查看>>
使用SQL Server 助力解决全行业数字化能力
查看>>
理解Android虚拟机体系结构
查看>>
越想越恐怖:从美国互联网瘫痪说起
查看>>
5个常见的展示不同类型数据的错误形式以及如何避免
查看>>