C#常用文件操作

――摘录自 博客园

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());        }    }

 

 

你可能感兴趣的:(html,exception,String,C#,File,input)