文件操作:Directory,File,FielStream、StreamRead和StreamWriter的使用

Directory文件类,File,FielStream、StreamRead和StreamWriter的使用

(转载)

 
创建一个新文件
    Directory.CreateDirectory(@"C: UsersenleDesktop
ew");//路径
删除一个文件
    Directory.Delete(@"C: UsersenleDesktop
ew", true);
剪切一个文件      
     Directory.Move(@"C:UsersenleDesktop
ew", @"C:UsersenleDesktop
ew1");
读取文件所有文件的全路径         
    string[] path = Directory.GetFiles(@"C:UsersenleDesktop2", "*.pdf");//"*.pdf" 对读取文件的格式,进行限定
            for (int i = 0; i < path.Length; i++)
            {
                Console.WriteLine(path[i]);
            } 
文件夹的路径
 string[] path = Directory.GetDirectories(@"C:UsersenleDesktop2");

            for (int i = 0; i < path.Length; i++)
            {
                Console.WriteLine(path[i]);
            }
           Console.ReadKey()
创建文件夹
    if (Directory .Exists (@"C:UsersenleDesktop
ew1"))
            {
                for (int i = 0; i < 100; i++)
                {
                    Directory.CreateDirectory(@"C: UsersenleDesktop
ew1" + i);
                  
                }
}

//读取文本文件

            // FileMode.OpenOrCreate你针对文件进行一个什么操作
            //FileAccess .Read 文件数据参数
            //1.创建FileStream对象
            FileStream fileRead = new FileStream(@"C:UserswbrmDesktop新建文本文档.txt", FileMode.OpenOrCreate, FileAccess.Read);
            byte[] buffer = new byte[1024 * 1024 * 5];
            int r = fileRead.Read(buffer, 0, buffer.Length);   // 0表示从那个字节读取数据   // buffer.Length 读取的大小
            //将字节数组中的每一个元素安照知道的编码格式解码成字符串
            string s = Encoding.Default.GetString(buffer, 0, r);
            fileRead.Close();   // //关闭流     
            fileRead.Dispose(); // //释放流所占用的资源      
 写入文本文件
            //写入的编码格式和读的编码格式必须一样
            //将创建的文件流对象的过程在Using当中,会自动的帮助我们释放所占用的空间
            using (FileStream fswrite = new FileStream(@"C:UserswbrmDesktop新建文本文档 (2).txt", FileMode.OpenOrCreate, FileAccess.Write))
            {
                string str = "看我有没有把你覆盖掉";
                byte[] buffer = Encoding.Default.GetBytes(str);//转换成字节数组
                fswrite.Write(buffer, 0, buffer.Length);
            }

使用文件流实现多媒体文件文件的复制

static void Main(string[] args)
        {
            //思路:先将要复制的多媒体文件读取出来然后在再写到你的指定位置
            string courece = @"C:UserswbrmDesktopfor循环的练习.avi";
            string target = @"C:UserswbrmDesktop新的.avi";
            CopyFile(courece, target);
        }
        public static void CopyFile(string courece, string target)
        {
            //读取流
            using (FileStream fsRead = new FileStream(courece, FileMode.OpenOrCreate, FileAccess.Read))
            {
               //写入流
                using (FileStream fsWrite = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write))  
                {                   
                    byte[] buffer = new byte[1024 * 1024 * 5];
                    //因为文件可能会比较大,所以我们在读取的时候,应该通过一个循环去读取
                    while (true)
                    {
                        //返回本次读取实际读取的字节数
                        int r = fsRead.Read(buffer, 0, buffer.Length);
                        //如果返回一个0,也就意味什么都没有读取到,读取完了
                        if(r==0)
                        {
                            break;
                        }
                        fsWrite.Write(buffer, 0,r);//最多写入的字节r
                    }
                }
            }
        }
//StreamRead来读取一个文件
            using (StreamReader sr = new StreamReader(@"C:UsersenleDesktop新建文本文档.txt", Encoding.Default))
            {
                while (!sr.EndOfStream)//循环的去读文件
                {
                    var str=sr.ReadLine();
                }
            }
//StreamWriter写入一个文本文件
            using (StreamWriter strw = new StreamWriter(@"C:UserswbrmDesktop新建.txt",true  ))//true 表示追加
            {
                strw.Write("哈哈哈");
            }
原文地址:https://www.cnblogs.com/william-CuiCui0705/p/8066379.html