C#中常用的文件操作方法.docx

上传人:b****5 文档编号:7227012 上传时间:2023-01-22 格式:DOCX 页数:11 大小:19.69KB
下载 相关 举报
C#中常用的文件操作方法.docx_第1页
第1页 / 共11页
C#中常用的文件操作方法.docx_第2页
第2页 / 共11页
C#中常用的文件操作方法.docx_第3页
第3页 / 共11页
C#中常用的文件操作方法.docx_第4页
第4页 / 共11页
C#中常用的文件操作方法.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C#中常用的文件操作方法.docx

《C#中常用的文件操作方法.docx》由会员分享,可在线阅读,更多相关《C#中常用的文件操作方法.docx(11页珍藏版)》请在冰豆网上搜索。

C#中常用的文件操作方法.docx

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

C#追加文件

StreamWritersw=File.AppendText(Server.MapPath(".")+"\\myText.txt");

sw.WriteLine("追逐理想");

sw.WriteLine("kzlll");

sw.WriteLine(".NET笔记");

sw.Flush();

sw.Close();

C#拷贝文件

stringOrignFile,NewFile;

OrignFile=Server.MapPath(".")+"\\myText.txt";

NewFile=Server.MapPath(".")+"\\myTextCopy.txt";

File.Copy(OrignFile,NewFile,true);

C#删除文件

stringdelFile=Server.MapPath(".")+"\\myTextCopy.txt";

File.Delete(delFile);

C#移动文件

stringOrignFile,NewFile;

OrignFile=Server.MapPath(".")+"\\myText.txt";

NewFile=Server.MapPath(".")+"\\myTextCopy.txt";

File.Move(OrignFile,NewFile);

C#创建目录

//创建目录c:

\sixAge

DirectoryInfod=Directory.CreateDirectory("c:

\\sixAge");

//d1指向c:

\sixAge\sixAge1

DirectoryInfod1=d.CreateSubdirectory("sixAge1");

//d2指向c:

\sixAge\sixAge1\sixAge1_1

DirectoryInfod2=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");

递归删除文件夹及文件

<%@PageLanguage=C#%>

<%@Importnamespace="System.IO"%>

publicvoidDeleteFolder(stringdir)

{

   if(Directory.Exists(dir))//如果存在这个文件夹删除之

   {

       foreach(stringdinDirectory.GetFileSystemEntries(dir))

       {

           if(File.Exists(d))

               File.Delete(d);//直接删除其中的文件

           else

               DeleteFolder(d);//递归删除子文件夹

       }

       Directory.Delete(dir);//删除已空文件夹

       Response.Write(dir+"文件夹删除成功");

   }

   else

       Response.Write(dir+"该文件夹不存在");//如果文件夹不存在则提示

}

protectedvoidPage_Load(Objectsender,EventArgse)

{

   stringDir="D:

\\gbook\\11";

   DeleteFolder(Dir);//调用函数删除文件夹

}

//======================================================

//实现一个静态方法将指定文件夹下面的所有内容copy到目标文件夹下面

//如果目标文件夹为只读属性就会报错。

//April18April2005InSTU

//======================================================

publicstaticvoidCopyDir(stringsrcPath,stringaimPath)

{

  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(stringfileinfileList)

   {

    //先当作目录处理如果存在这个目录就递归Copy该目录下面的文件

    if(Directory.Exists(file))

     CopyDir(file,aimPath+Path.GetFileName(file));

     //否则直接Copy文件

    else

     File.Copy(file,aimPath+Path.GetFileName(file),true);

   }

  }

  catch(Exceptione)

  {

   MessageBox.Show(e.ToString());

  }

}

//======================================================

//实现一个静态方法将指定文件夹下面的所有内容Detele

//测试的时候要小心操作,删除之后无法恢复。

//April18April2005InSTU

//======================================================

publicstaticvoidDeleteDir(stringaimPath)

{

  try

  {

   //检查目标目录是否以目录分割字符结束如果不是则添加之

   if(aimPath[aimPath.Length-1]!

=Path.DirectorySeparatorChar)

    aimPath+=Path.DirectorySeparatorChar;

   //得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组

   //如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方法

   //string[]fileList=Directory.GetFiles(aimPath);

   string[]fileList=Directory.GetFileSystemEntries(aimPath);

   //遍历所有的文件和目录

   foreach(stringfileinfileList)

   {

    //先当作目录处理如果存在这个目录就递归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(Exceptione)

  {

   MessageBox.Show(e.ToString());

  }

}

需要引用命名空间:

usingSystem.IO;

/**////

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

CopyFolder(源文件夹,目标文件夹);

///

///

///

publicstaticvoidCopyFolder(stringstrFromPath,stringstrToPath)

{

  //如果源文件夹不存在,则创建

  if(!

Directory.Exists(strFromPath))

  {   

   Directory.CreateDirectory(strFromPath);

  }  

  //取得要拷贝的文件夹名

  stringstrFolderName=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(inti=0;i

  {

   //取得拷贝的文件名,只取文件名,地址截掉。

   stringstrFileName=strFiles[i].Substring(strFiles[i].LastIndexOf("\\")+1);

   //开始拷贝文件,true表示覆盖同名文件

   File.Copy(strFiles[i],strToPath+"\\"+strFolderName+"\\"+strFileName,true);

  }

  //创建DirectoryInfo实例

  DirectoryInfodirInfo=newDirectoryInfo(strFromPath);

  //取得源文件夹下的所有子文件夹名称

  DirectoryInfo[]ZiPath=dirInfo.GetDirectories();

  for(intj=0;j

  {

   //获取所有子文件夹名

   stringstrZiPath=strFromPath+"\\"+ZiPath[j].ToString();  

   //把得到的子文件夹当成新的源文件夹,从头开始新一轮的拷贝

   CopyFolder(strZiPath,strToPath+"\\"+strFolderName);

  }

}

一.读取文本文件

1/**////

2///读取文本文件

3///

4privatevoidReadFromTxtFile()

5{

6   if(filePath.PostedFile.FileName!

="")

7   {

8       txtFilePath=filePath.PostedFile.FileName;

9       fileExtName=txtFilePath.Substring(txtFilePath.LastIndexOf(".")+1,3);

10

11       if(fileExtName!

="txt"&&fileExtName!

="TXT")

12       {

13           Response.Write("请选择文本文件");

14       }

15       else

16       {

17           StreamReaderfileStream=newStreamReader(txtFilePath,Encoding.Default);

18           txtContent.Text=fileStream.ReadToEnd();

19           fileStream.Close();

20       }

21   }

22}

二.获取文件列表

1/**////

2///获取文件列表

3///

4privatevoidGetFileList()

5{

6   stringstrCurDir,FileName,FileExt;

7   

8   /**////文件大小

9   longFileSize;

10   

11   /**////最后修改时间;

12   DateTimeFileModify;

13

14   /**////初始化

15   if(!

IsPostBack)

16   {

17       /**////初始化时,默认为当前页面所在的目录

18       strCurDir=Server.MapPath(".");

19       lblCurDir.Text=strCurDir;

20       txtCurDir.Text=strCurDir;

21   }

22   else

23   {

24       strCurDir=txtCurDir.Text;

25       txtCurDir.Text=strCurDir;

26       lblCurDir.Text=strCurDir;

27   }

28   FileInfofi;

29   DirectoryInfodir;

30   TableCelltd;

31   TableRowtr;

32   tr=newTableRow();

33   

34   /**////动态添加单元格内容

35   td=newTableCell();

36   td.Controls.Add(newLiteralControl("文件名"));

37   tr.Cells.Add(td);

38   td=newTableCell();

39   td.Controls.Add(newLiteralControl("文件类型"));

40   tr.Cells.Add(td);

41   td=newTableCell();

42   td.Controls.Add(newLiteralControl("文件大小"));

43   tr.Cells.Add(td);

44   td=newTableCell();

45   td.Controls.Add(newLiteralControl("最后修改时间"));

46   tr.Cells.Add(td);

47

48   tableDirInfo.Rows.Add(tr);

49   

50   /**////针对当前目录建立目录引用对象

51   DirectoryInfodirInfo=newDirectoryInfo(txtCurDir.Text);

52   

53   /**////循环判断当前目录下的文件和目录

54   foreach(FileSystemInfofsiindirInfo.GetFileSystemInfos())

55   {

56       FileName="";

57       FileExt="";

58       FileSize=0;

59       

60       /**////如果是文件

61       if(fsiisFileInfo)

62       {

63           fi=(FileInfo)fsi;

64           

65           /**////取得文件名

66           FileName=fi.Name;

67           

68           /**////取得文件的扩展名

69           FileExt=fi.Extension;

70           

71           /**////取得文件的大小

72           FileSize=fi.Length;

73           

74           /**////取得文件的最后修改时间

75           FileModify=fi.LastWriteTime;

76       }

77

78       /**////否则是目录

79       else

80       {

81           dir=(DirectoryInfo)fsi;

82           

83           /**////取得目录名

84           FileName=dir.Name;

85           

86           /**////取得目录的最后修改时间

87           FileModify=dir.LastWriteTime;

88           

89           /**////设置文件的扩展名为"文件夹"

90           FileExt="文件夹";

91       }

92       

93       /**////动态添加表格内容

94       tr=newTableRow();

95       td=newTableCell();

96       td.Controls.Add(newLiteralControl(FileName));

97       tr.Cells.Add(td);

98       td=newTableCell();

99       td.Controls.Add(newLiteralControl(FileExt));

100       tr.Cells.Add(td);

101       td=newTableCell();

102       td.Controls.Add(newLiteralControl(FileSize.ToString()+"字节"));

103       tr.Cells.Add(td);

104       td=newTableCell();

105       td.Controls.Add(newLiteralControl(FileModify.ToString("yyyy-mm-ddhh:

mm:

ss")));

106       tr.Cells.Add(td);

107       tableDirInfo.Rows.Add(tr);

108   }

109}

三.读取日志文件

1/**////

2///读取日志文件

3///

4privatevoidReadLogFile()

5{

6   /**////从指定的目录以打开或者创建的形式读取日志文件

7   FileStreamfs=newFileStream(Server.MapPath("upedFile")+"\\logfile.txt",FileMode.OpenOrCreate,FileAccess.Read);

8

9   /**////定义输出字符串

10   StringBuilderoutput=newStringBuilder();

11   

12   /**////初始化该字符串的长度为0

13   output.Length=0;

14   

15   /**////为上面创建的文件流创建读取数据流

16   StreamReaderread=newStreamReader(fs);

17   

18   /**////设置当前流的起始位置为文件流的起始点

19   read.BaseStream.Seek(0,SeekOrigin.Begin);

20   

21   /**////读取文件

22   while(read.Peek()>-1)

23   {

24       /**////取文件的一行内容并换行

25       output.Append(read.ReadLine()+"\n");

26   }

27   

28   /**////关闭释放读数据流

29   read.Close();

3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1