c#文件操作示例带详细注释

所属分类: 软件编程 / C#教程 阅读数: 48
收藏 0 赞 0 分享

复制代码 代码如下:

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

        }
    }
}

更多精彩内容其他人还在看

C#中Datetimepicker出现问题的解决方法

这篇文章主要给大家介绍了关于C#中Datetimepicker出现问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

C# SQLite数据库入门使用说明

这篇文章主要给大家介绍了关于C#中SQLite数据库入门使用的相关资料,文中通过图文以及示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

C#实现批量下载图片到本地示例代码

这篇文章主要给大家介绍了关于C#如何实现批量下载图片到本地的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用c#具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

如何获取C#中方法的执行时间以及其代码注入详解

这篇文章主要给大家介绍了关于如何获取C#中方法的执行时间以及其代码注入的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
收藏 0 赞 0 分享

C#中通过LRU实现通用高效的超时连接探测

这篇文章主要介绍了c#中通过LRU实现通用高效的超时连接探测,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
收藏 0 赞 0 分享

如何使用C#将Tensorflow训练的.pb文件用在生产环境详解

这篇文章主要给大家介绍了关于如何使用C#将Tensorflow训练的.pb文件用在生产环境的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

C#程序启动项的设置方法

这篇文章主要为大家详细介绍了C#程序启动项的设置方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

c#爬虫爬取京东的商品信息

这篇文章主要给大家介绍了关于利用c#爬虫爬取京东商品信息的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们随着小编来一起学习学习吧
收藏 0 赞 0 分享

C#随机数生成字母金字塔

这篇文章主要为大家详细介绍了C#随机数生成字母金字塔,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

WPF实现窗体中的悬浮按钮

这篇文章主要为大家详细介绍了WPF实现窗体中的悬浮按钮,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多