zoukankan      html  css  js  c++  java
  • C# 文件,文件夹的操作

    C# 文件操作(文件夹 及 文件)

    System.IO 类

    目录操作
    string[] drives = Directory.GetLogicalDrives(); //本地驱动器的名,如:C:/等
    string path = Directory.GetCurrentDirectory();   //获取应用程序的当前工作目录
    Path.GetFileName(@"c:/dir/file.txt");            //获取子目录的名字,result的结果是file.txt
    Directory.GetFiles(路径及文件名)                 //获取指定目录中的文件名(文件列表)
    DirectoryInfo di = new DirectoryInfo(@"f:/MyDir"); //构造函数创建目录
    DirectoryInfo di=Directory.CreateDirectory(@"f:/bbs"); //创建对象并创建目录
    if (di.Exists == false) //检查是否存在此目录
    di.Create(); //创建目录
    DirectoryInfo dis = di.CreateSubdirectory("SubDir"); //以相对路径创建子目录
    dis.Delete(true); //删除刚创建的子目录
    di.Delete(true); //删除创建目录

    文件夹操作
    Directory.Delete(@"f:/bbs2", true); //删除目录及其子目录和内容(如为假不能删除有内容的目录包括子目录)
    Directory.GetDirectories 方法 //获取指定目录中子目录的名称
    string[] dirs = Directory.GetDirectories(@"f:/", "b*"); 
    Console.WriteLine("此目录中以b开头的子目录共{0}个!", dirs.Length);
    foreach (string dir in dirs) { Console.WriteLine(dir); }
    Directory.GetFileSystemEntries //获取指定目录中的目录及文件名
    Directory.GetLogicalDrives //检索此计算机上格式为“<驱动器号>:/”的逻辑驱动器的名称,【语法同上】
    Directory.GetParent //用于检索父目录的路径。
    DirectoryInfo a = Directory.GetParent(path);
    Console.WriteLine(a.FullName);Directory.Move //移动目录及其在内的所有文件
    Directory.Move(@"f:/bbs/1", @"f:/bbs/2"); //将文件夹1内的文件剪到文件夹2内 文件夹2是刚创建的

     

    Stream // 对字节的读写操作(包含对异步操作的支持) Reading Writing Seeking
    BinaryReader和BinaryWriter // 从字符串或原始数据到各种流之间的读写操作
    FileStream类通过Seek()方法进行对文件的随机访问,默认为同步
    TextReader和TextWriter //用于gb2312字符的输入和输出
    StringReader和StringWriter //在字符串中读写字符
    StreamReader和StreamWriter //在流中读写字符
    BufferedStream 为诸如网络流的其它流添加缓冲的一种流类型.
    MemoryStream 无缓冲的流
    NetworkStream 互联网络上的流

    //编码转换
    Encoding e1 = Encoding.Default;               //取得本页默认代码 
    Byte[] bytes = e1.GetBytes("中国人民解放军"); //转为二进制
    string str = Encoding.GetEncoding("UTF-8").GetString(bytes); //转回UTF-8编码

    文本文件操作:创建/读取/拷贝/删除
    using System;
    using System.IO;
    class Test 
    {
       string path = @"f:/t.txt";
       public static void Main() 
        {       
          //创建并写入(将覆盖已有文件)
          if (!File.Exists(path))
           {          
             using (StreamWriter sw = File.CreateText(path))
              {
                 sw.WriteLine("Hello");
              } 
           }
          //读取文件
          using (StreamReader sr = File.OpenText(path)) 
           {
             string s = "";
            while ((s = sr.ReadLine()) != null) 
             {
                Console.WriteLine(s);
             }
          }
         //删除/拷贝
         try 
          {
             File.Delete(path);
             File.Copy(path, @"f:/tt.txt");
          } 
         catch (Exception e) 
          {
             Console.WriteLine("The process failed: {0}", e.ToString());
          }
        }
    }


    //流文件操作
    private const string name = "Test.data";
    public static void Main(String[] args) 
    {
         //打开文件()   ,或通过File创建立如:fs = File.Create(path, 1024)
         FileStream fs = new FileStream(name, FileMode.CreateNew);
         //转换为字节 写入数据(可写入中文)
         Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
        //字节数组,字节偏移量,最多写入的字节数
         fs.Write(info, 0, info.Length);
         w.Close();
         fs.Close();
        //打开文件
         fs = new FileStream(name, FileMode.Open, FileAccess.Read);
        //读取
         BinaryReader r = new BinaryReader(fs);
         for (int i = 0; i < 11; i++) 
         {
             Console.WriteLine(r.ReadInt32());
         }
         w.Close();
         fs.Close();
    }

     

    //C#写入/读出文本文件
       string fileName =@"c:/111.txt";
       StreamReader sr = new StreamReader(fileName);                      
       string  str=sr.ReadLine  ();                                                                                                                                    
       sr.close();                                       
       StreamWriter rw=File.CreateText(Server.MapPath(".")+"//myText.txt");
       rw.WriteLine("写入");
       rw.WriteLine("abc");
       rw.WriteLine(".NET笔记");
       rw.Flush();
       rw.Close();
    //打开文本文件 
    StreamReader sr=File.OpenText(Server.MapPath(".")+"//myText.txt");
    StringBuilder output=newStringBuilder();
    string rl;
    while((rl=sr.ReadLine())!=null)
    {
       output.Append(rl+"");
    }
    lblFile.Text=output.ToString();
    sr.Close();

    //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
    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"); 
  • 相关阅读:
    【BZOJ4514】【SDOI2016】数字配对 [费用流]
    【BZOJ4517】【SDOI2016】排列计数 [数论]
    【BZOJ4516】【SDOI2016】生成魔咒 [SAM]
    【BZOJ1560】【JSOI2009】火星藏宝图 [DP]
    【BZOJ4903】【CTSC2017】吉夫特 [DP]
    【BZOJ3884】上帝与集合的正确用法 [欧拉定理]
    【BZOJ4869】相逢是问候 [线段树][欧拉定理]
    树和二叉树知识点总结
    Socket详解
    Host文件简介
  • 原文地址:https://www.cnblogs.com/zhangqs008/p/2341175.html
Copyright © 2011-2022 走看看