码迷,mamicode.com
首页 > Web开发 > 详细

.Net-IO

时间:2019-11-06 01:12:59      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:write   delete   路径   bsp   方法   返回   col   ati   很多   

在.net的日常工作中IO是一个作为.Net开发常用的一种流

在其中有很多种方法,在这里我简单的举几个比较简单的例子

1,常用的关于文件和文件夹 相关属性

   Directory   DirectoryInfo    File   FileInfo

  在我们的日常工作中很多时候我们都要有先的去查找文件或者文件夹是否存在时我们常用的一种属性有

 Directory.Exists(LogPath)     File.Exists(LogPath)  查找文件或者文件夹是否存在Exists返回值是布尔类型,所以一般用于判断

   路径拼接 Path.Combine(LogPath, "info.txt") 可以很好的将数据链接拼上去

 1  if (!Directory.Exists(LogPath))//检测文件夹是否存在
 2 {
 3 
 4  }
 5 DirectoryInfo directory = new DirectoryInfo(LogPath);//不存在不报错  注意exists属性
 6 Console.WriteLine(string.Format("{0} {1} {2}", directory.FullName, directory.CreationTime, directory.LastWriteTime));
 7   if (!File.Exists(Path.Combine(LogPath, "info.txt")))
 8   {
 9   }
10 
11   FileInfo fileInfo = new FileInfo(Path.Combine(LogPath, "info.txt"));
12   Console.WriteLine(string.Format("{0} {1} {2}", fileInfo.FullName, fileInfo.CreationTime, fileInfo.LastWriteTime));

下面简单的介绍一下关于文件和文件夹我们常用的一些属性,比较常用的一些

1      Directory.Move(LogPath, LogMovePath);//移动  原文件夹就不在了  相当于剪切
2      Directory.Delete(LogMovePath);//删除
3       File.Copy(fileName, fileNameCopy);
4       File.Move(fileName, fileNameMove);
5      File.Delete(fileNameMove);//尽量不要delete
6     
7     切记   Directory.Copy(LogPath, LogMovePath);是错误的Directory是没有Copy方法的
8      

 

下面是关于File的一些写入操作

 1      {   
 2                 //File
 3                 string fileName = Path.Combine(LogPath, "log.txt");
 4                 string fileNameCopy = Path.Combine(LogPath, "logCopy.txt");
 5                 string fileNameMove = Path.Combine(LogPath, "logMove.txt");
 6                 
 7                 if (!File.Exists(fileName))
 8                 {
 9                     Directory.CreateDirectory(LogPath);//创建了文件夹之后,才能创建里面的文件
10                     using (FileStream fileStream = File.Create(fileName))//打开文件流 (创建文件并写入)
11                     {
12                         string name = "12345567778890";
13                         byte[] bytes = Encoding.Default.GetBytes(name);
14                         fileStream.Write(bytes, 0, bytes.Length);
15                         fileStream.Flush();
16                     }
17                     using (FileStream fileStream = File.Create(fileName))//打开文件流 (创建文件并写入)
18                     {
19                         StreamWriter sw = new StreamWriter(fileStream);
20                         sw.WriteLine("StreamWriter");
21                         sw.Flush();
22                     }
23 
24                     using (StreamWriter sw = File.AppendText(fileName))//流写入器(创建/打开文件并写入)
25                     {
26                         string msg = "YZMAppendText";
27                         sw.WriteLine(msg);
28                         sw.Flush();
29                     }
30                     using (StreamWriter sw = File.AppendText(fileName))//流写入器(创建/打开文件并写入)
31                     {
32                         string name = "StreamWriterbyte";
33                         byte[] bytes = Encoding.Default.GetBytes(name);
34                         sw.BaseStream.Write(bytes, 0, bytes.Length);
35                         sw.Flush();
36                     }
37 
38 
39 
40                     foreach (string result in File.ReadAllLines(fileName))
41                     {
42                         Console.WriteLine(result);
43                     }
44                     string sResult = File.ReadAllText(fileName);
45                     Byte[] byteContent = File.ReadAllBytes(fileName);
46                     string sResultByte = System.Text.Encoding.UTF8.GetString(byteContent);
47 
48                     using (FileStream stream = File.OpenRead(fileName))//分批读取可以有效的防止文件过大打不开的效果
49                     {
50                         int length = 5;
51                         int result = 0;
52 
53                         do
54                         {
55                             byte[] bytes = new byte[length];
56                             result = stream.Read(bytes, 0, 5);//自己定义byte的长度
57                             for (int i = 0; i < result; i++)
58                             {
59                                 Console.WriteLine(bytes[i].ToString());
60                             }
61                         }
62                         while (length == result);
63                     }
64 
65                     File.Copy(fileName, fileNameCopy);
66                     File.Move(fileName, fileNameMove);
67                     File.Delete(fileNameCopy);
68                     File.Delete(fileNameMove);//尽量不要delete
69                 }
70             }

 

 

 

 

 

.Net-IO

标签:write   delete   路径   bsp   方法   返回   col   ati   很多   

原文地址:https://www.cnblogs.com/YZM97/p/11802643.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!