• C#中IO类FileInfo和Directory操作实例


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    
    namespace Example
    {
        
        class Program
        {
       
            static void Main(string[] args)
            {
                ////////////////   文件打开  下面的代码打开D:\wang.txt文件,并且向文件中写入"hello"
                FileStream textFile = File.Open(@"D:\wang.txt", FileMode.Append);//以Append方式打开文件(如果不存在,会创建)
                byte[] info = { (byte)'h', (byte)'e', (byte)'l', (byte)'l', (byte)'o' };//要写入的信息
                textFile.Write(info, 0, info.Length);//Write方法只能写入byte数组                        
                textFile.Close();//关闭文件流
               
     
                ////////////////////// 文件创建    
                FileStream newText = File.Create(@"D:\newText.txt");//创建文件
                newText.Close();//关闭文件
    
                ////////////////////  删除文件
                File.Delete(@"d:\newText.txt");
    
                //////////////////  文件复制   如果目标文件存在,不允许复制(就是不能覆盖同名文件)
                //File.Copy(@"d:\wang.txt", @"d:\CopyWang.txt");
    
    
                ////////////////  文件移动  只能在同一个盘中移动  如果目标路径不正确,不能移动
               // File.Move(@"d:\CopyWang.txt", @"D:\A\movewang.txt");
    
                ////////////////////////  设置文件属性为 只读,隐藏
                //File.SetAttributes(@"D:\copywang.txt", FileAttributes.ReadOnly | FileAttributes.Hidden);//同时满足多个属性,必须用位或(|).
    
                ///////////////  判断文件是不是存在
                if (File.Exists(@"D:\copywang.txt"))//如果存在  即便是隐藏的文件也可以找到
                {
                    File.SetAttributes(@"D:\copywang.txt", FileAttributes.ReadOnly);//重新设置属性后,隐藏的文件也会显示出来,只要不加Hidden属性
                    Console.WriteLine("找到文件copywang.txt");
                }
                else
                {
                    Console.WriteLine("没有找到文件CopyWang.txt");
                }
                /*
                此外,File类对于Text文本提供了更多的支持。
              ?AppendText:将文本追加到现有文件
              ?CreateText:为写入文本创建或打开新文件
              ?OpenText:打开现有文本文件以进行读取
              但上述方法主要对UTF-8的编码文本进行操作,从而显得不够灵活。在这里推荐读者使用下面的代码对txt文件进行操作。
              ?对txt文件进行“读”操作,示例代码如下:   
                 */
                StreamReader textReader = new StreamReader(@"D:\wang.txt", System.Text.Encoding.Default);//以默认编码方式打开文件
                string str = textReader.ReadToEnd();//读取文件
                Console.WriteLine("使用StreamReader读取文本内容:" + str);
                textReader.Close();
    
                //////////////////对txt文件写内容
                StreamWriter textWriter = new StreamWriter(@"D:\wang.txt");
                str = "Learn .Net";
                textWriter.Write(str);
                textWriter.Close();
    
                /*
                System.IO.Directory类和System.DirectoryInfo类
               主要提供关于目录的各种操作,使用时需要引用System.IO命名空间。下面通过程序实例来介绍其主要属性和方法。 
                */
                Directory.CreateDirectory(@"D:\wang1\wang");//创建目录(文件夹)如果已经存在,则保持;还可以一次创建多级目录
    
                /////////////////////////////////目录属性设置方法
                DirectoryInfo dirInfo = new DirectoryInfo(@"D:\wang1\wang");//
                dirInfo.Attributes = FileAttributes.Hidden;// | FileAttributes.ReadOnly;//设置文件夹属性
    
                /////////////////Delete方法的第二个参数为bool类型,它可以决定是否删除非空目录。
                //如果该参数值为true,将删除整个目录,即使该目录下有文件或子目录;若为false,则仅当目录为空时才可删除。 
                //Directory.Delete(@"D:\wang1", true);//如果文件设置为ReadOnly,则不能删除
    
                //Directory.Move(@"d:\wang1", @"d:\wang3");//把文件夹wang1移动到文件夹wang3中,相当于把wang1删除,创建一个wang3,再把内容移动到wang3
    
                string[] Directories = Directory.GetDirectories(@"D:\wang3");//获得文件夹wang3的目录
                foreach (string var in Directories)
                    Console.WriteLine(var);
    
                string[] Files = Directory.GetFiles(@"D:\wang1");//获取文件夹wang1下面的所有文件
                foreach (string var in Files)
                    Console.WriteLine(var);
    
                if (Directory.Exists(@"D:\wang1"))
                    Console.WriteLine("文件夹wang1存在");
    
                /*
                在C#中 “\”是特殊字符,要表示它的话需要使用“\\”。由于这种写法不方便,C#语言提供了@对其简化。只要在字符串前加上@即可直接使用“\”。
                    所以上面的路径在C#中应该表示为“Book”,@“\Tmp\Book”,@“C:\Tmp\Book”。
                */
    
                Console.ReadLine();   
     
            }
        }
    }

    一些操作由于互相关联,因此加了注释,看该文章时,只需把代码复制下来从前到后一点一点的运行就可以看到结果。(可以先把后面的注释掉,通过加/*  */).

    参考:http://blog.163.com/xiao_mege/blog/static/729427532010993582453/

  • 相关阅读:
    我们总在避免认知失调(转)
    我们搞开发的为什么会感觉到累(转)
    循环-11. 水仙花数(20)
    谷歌技术"三宝"之MapReduce
    oracle存储过程实例
    网络编程学习小结
    关于window.history.back()后退问题
    区间Dp 暴力枚举+动态规划 Hdu1081
    MongoDB入门简单介绍
    Windows8和MacOS10.9双系统安装及Mac经常使用软件安装--联想E49A
  • 原文地址:https://www.cnblogs.com/wang7/p/2455329.html
Copyright © 2020-2023  润新知