`
thinkgem
  • 浏览: 586080 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

C# 常用文件操作

    博客分类:
  • C#
阅读更多
C#追加文件 
StreamWriter sw = File.AppendText(Server.MapPath(".")+"\myText.txt"); 
sw.WriteLine("test"); 
sw.WriteLine("Rochael Zhang"); 
sw.WriteLine("CSharp 学习"); 
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:sixAgesixAge1 
DirectoryInfo d1=d.CreateSubdirectory("sixAge1"); 
// d2指向c:sixAgesixAge1sixAge1_1 
DirectoryInfo d2=d1.CreateSubdirectory("sixAge1_1"); 
// 将当前目录设为c:sixAge 
Directory.SetCurrentDirectory("c:\sixAge"); 
// 创建目录c:sixAgesixAge2 
Directory.CreateDirectory("sixAge2"); 
// 创建目录c:sixAgesixAge2sixAge2_1 
Directory.CreateDirectory("sixAge2\sixAge2_1"); 

递归删除文件夹及文件 
<%@ Page Language=C#%> 
<%@ Import namespace="System.IO"%> 
<Script runat=server> 
public void DeleteFolder(string dir) 

    if (Directory.Exists(dir)) //如果存在这个文件夹删除之 
    { 
        foreach(string d in Directory.GetFileSystemEntries(dir)) 
        { 
            if(File.Exists(d)) 
                File.Delete(d); //直接删除其中的文件 
            else 
                DeleteFolder(d); //递归删除子文件夹 
        } 
        Directory.Delete(dir); //删除已空文件夹 
        Response.Write(dir+" 文件夹删除成功"); 
    } 
    else 
        Response.Write(dir+" 该文件夹不存在"); //如果文件夹不存在则提示 


protected void Page_Load (Object sender ,EventArgs e) 

    string Dir="D:\gbook\11"; 
    DeleteFolder(Dir); //调用函数删除文件夹 



// ======================================================
// 实现一个静态方法将指定文件夹下面的所有内容copy到目标文件夹下面
// 如果目标文件夹为只读属性就会报错。
// April 18April2005 In STU
// ======================================================
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());
   }


// ======================================================
// 实现一个静态方法将指定文件夹下面的所有内容Detele
// 测试的时候要小心操作,删除之后无法恢复。
// April 18April2005 In STU
// ======================================================
public static void DeleteDir(string aimPath)
{
   try
   {
    // 检查目标目录是否以目录分割字符结束如果不是则添加之
    if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar) 
     aimPath += Path.DirectorySeparatorChar;
    // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
    // 如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方法
    // string[] fileList = Directory.GetFiles(aimPath);
    string[] fileList = Directory.GetFileSystemEntries(aimPath);
    // 遍历所有的文件和目录
    foreach(string file in fileList)
    {
     // 先当作目录处理如果存在这个目录就递归Delete该目录下面的文件
     if(Directory.Exists(file))
     {
      DeleteDir(aimPath+Path.GetFileName(file));
     }
      // 否则直接Delete文件
     else
     {
      File.Delete (aimPath+Path.GetFileName(file));
     }
    }
    //删除文件夹
    System.IO .Directory .Delete (aimPath,true);
   }
   catch (Exception e)
   {
    MessageBox.Show (e.ToString());
   }
}

需要引用命名空间:
using System.IO;

/**//**//**//// <summary>
/// 拷贝文件夹(包括子文件夹)到指定文件夹下,源文件夹和目标文件夹均需绝对路径. 格式: CopyFolder(源文件夹,目标文件夹);
/// </summary>
/// <param name="strFromPath"></param>
/// <param name="strToPath"></param>

//--------------------------------------------------
//作者:明天去要饭   QQ:305725744
//---------------------------------------------------

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

一.读取文本文件
/**//**//**//// <summary>
/// 读取文本文件
/// </summary>
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();
        }
    }

 

分享到:
评论

相关推荐

    C#常用文件操作.txt

    ### C#中的文件操作 #### 1. 写入文件 在C#中,可以通过`StreamWriter`类来实现对文本文件的追加写入。例如,下面的代码展示了如何向一个名为`myText.txt`的文件中追加文本: ```csharp using System.IO; ...

    C# 对文件操作详细

    本篇将详细探讨C#中的文件操作技术,包括基本概念、常用类库、操作方法以及实例演示。 一、基本概念 在C#中,文件操作主要涉及System.IO命名空间,它提供了大量的类用于处理输入/输出(I/O)任务。其中,File类和...

    c# 编写常用文件操作

    #### 二、文件操作 ##### 1. 向文件追加文本 使用`StreamWriter`类可以方便地向文件追加内容。以下代码展示了如何打开一个文件,并在其末尾添加新的文本: ```csharp using System.IO; // 创建一个StreamWriter...

    C# 文件操作 常用 类库(附源码)

    包括: &lt;br&gt;F运行程序或文件 F使路径合法化 F使目录合法化 F根据网址重命名 F删除文件 F移动文件 F删除目录 F复制文件 F获取程序所在目录 F提取文件名 F根据文件名提取文件...

    C#关于文件操作的代码.rar

    以上是C#文件操作的一些核心概念和常用方法。通过压缩包中的代码示例,你可以更深入地了解这些功能的使用,进一步提升你的C#编程技能。在实际项目中,这些知识将帮助你有效地管理和操作文件系统资源。

    C#窗体文件操作案例 c#经典案例.doc

    常用的文件操作包括文件的创建、读取、写入、删除、复制、移动等。 文件流操作 文件流操作是指对文件的读写操作。在 C# 中,有两种方式来实现文件流操作:文本流和二进制流。文本流使用 StreamWriter 和 ...

    C#文件读写常用类介绍

    为了方便开发者进行文件操作,C#提供了丰富的API,其中最常用的两个类是`System.IO.File`和`System.IO.FileInfo`。这两个类均位于`System.IO`命名空间下,因此在使用前需要引入该命名空间。 #### 1. `File.Open()`:...

    C#中常用的经典文件操作方法

    本文将深入探讨C#中经典的文件操作方法,包括文件读写、复制、删除、移动以及目录创建与删除等关键功能。 ### 文件读写 C#提供了多种类库来实现文件读写操作,其中`StreamWriter`和`StreamReader`是最常用的一对。...

    C# INI 配置文件 常用操作 类库 (附源码)

    C# INI 配置文件 常用操作 类库 (附源码)

    C# 常用类库

    本篇文章将深入探讨标题“C# 常用类库”所涵盖的几个关键知识点,包括Chart图形绘制、CSV文件处理、数据加密与解密、FTP文件操作、JavaScript交互以及文件上传下载。 首先,让我们来看看Chart图形。在C#中,System....

    C#常用目录文件操作类实例

    本文将深入探讨C#中用于目录和文件操作的一些常用类,以及如何利用这些类实现基本的文件系统操作。 首先,C#中的`System.IO`命名空间提供了丰富的类来处理文件和目录。在`System.IO`中,`Directory`和`File`类是最...

    C# 常用类库合集

    C# 常用类库合集 包括:Chart图形,cmd,Cookie&Session,Excel操作类,FTP操作类,H5-微信,JSON操作,JS操作,obj,packages,Properties,XML操作类,上 传下载,二维码操作类,加密解密,图片,字符串,异步线程,文件操作类,日志,...

    C#常用类库(100多个)

    "C#常用类库(100多个)"这个资源包涵盖了众多实用的编程领域,包括文件处理、网络通信、HTTP交互、多线程、UI控件、Office文档操作、输入/输出(I/O)操作、JSON序列化与反序列化、压缩与解压、文本处理、正则表达式...

    C# 快速文件搜索 查找

    本篇文章将深入探讨如何使用C#进行快速的文件搜索,包括基本的文件操作、目录遍历以及高级搜索策略。 首先,C#中的`System.IO`命名空间提供了丰富的类来处理文件和目录。例如,`System.IO.File`和`System.IO....

    C#常用类大全(包括数据库操作类)

    在.NET开发领域,C#是一种广泛使用的编程语言,尤其在ASP.NET框架下,开发者们经常需要处理各种各样的任务,如数据库操作、日志记录、字符串处理、JavaScript交互、文件操作以及FTP传输等。以下是对标题和描述中提及...

    c#操作EXCEL文件

    首先,C#本身并不直接支持Excel文件操作,但可以通过第三方库或.NET Framework提供的组件实现。其中,最常用的是Microsoft Office Interop库(适用于安装了Office的环境)和Open XML SDK(无需安装Office,适用于...

    C#sftp实现对文件的操作

    总结起来,C#通过SSH.NET库可以轻松实现SFTP文件操作,包括连接、上传、下载、删除和移动文件。在开发涉及SFTP的C#应用时,理解这些基本操作是至关重要的。同时,为用户提供友好的图形界面,如"formClient",可以...

    C#文件的基本操作说明

    ### C# 文件的基本操作说明 在C#编程中,对文件进行操作是非常常见的需求之一。本文将详细介绍如何使用C#来进行文件的基本操作,包括文件的删除、创建、复制、重命名等。 #### 1. 使用 `Directory.GetFiles()` 和 ...

    C#操作ACCESS数据库,MDB文件读写

    在本场景中,我们关注的是如何使用C#操作Microsoft Access数据库(通常以.MDB文件格式存储)。Access数据库是一个关系型数据库管理系统,适用于小型到中型企业,提供了数据存储和管理的能力。下面将详细阐述如何使用...

Global site tag (gtag.js) - Google Analytics