2022.10.22《VR引擎程序设计基础》第11章 文件夹与文件

121 阅读3分钟
using System;
using System.IO;
using System.Xml.Linq;
using System.Text;
namespace std;     
class program
{
public static void Main(string[] args)
{

1、创建文件夹

    //创建方法一、使用Directory类创建文件夹
    Directory.CreateDirectory(@".\创建文件夹1");
    //特点:Directory(静态,直接拿来用,不用实例化)
    //创建方法二、使用DirectoryInfo类创建文件夹
    DirectoryInfo info1 = new DirectoryInfo(@".\创建文件夹2");
    info1.Create();
    //特点:DirectoryInfo(非静态,使用的时候需要实例化,优势大点)

2、删除文件夹

    //删除方法一、使用Directory类删除文件夹
    Directory.Delete(@".\创建文件夹1");
    //删除方法二、使用DirectoryInfo类删除文件夹
    DirectoryInfo info2 = new DirectoryInfo(@".\创建文件夹2");
    info2.Delete();

3、文件夹存在与否的判定一般常与2、删除文件夹一起使用

    //判断方法一、
    bool isDireExist1 = Directory.Exists(@".\创建文件夹1");
    //判断方法二、使用DirectoryInfo类判定文件夹是否存在
    DirectoryInfo info3 = new DirectoryInfo(@".\创建文件夹2");
    bool isDireExist2 = info3.Exists;

4、剪切文件夹

    //作用:将原文件夹中的所有文件移动到目标文件夹中,(注:移动前先判断是否存在目标文件夹,如果存在就不能剪切)
    //剪切方法一、
    Directory.Move((@".\创建文件夹1"), @".\创建文件夹2");
    //剪切方法二、使用DirectoryInfo类剪切文件夹
    DirectoryInfo info4 = new DirectoryInfo(@".\创建文件夹1");
    info4.MoveTo(@".\创建文件夹2");

5、设置文件夹的属性

    //作用:设置文件夹属性为只读:ReadOnly、隐藏文件夹:Hidden、临时文件夹:Temporary、加密文件夹:Encrypted
    //设置方法一、
    Directory.CreateDirectory(@".\创建文件夹1").Attributes = FileAttributes.ReadOnly;
    //使用DirectoryInfo类设置文件夹的属性
    DirectoryInfo info5 = new DirectoryInfo(@".\创建文件夹1");
    info5.Attributes = FileAttributes.ReadOnly;//Attributes:属性

6、创建文件

    //创建方法一、
    File.Create(@".\创建文件夹1\1.txt");
    //创建方法二、利用FileInfo类创建文件
    FileInfo info6 = new FileInfo(@".\创建文件夹1\2.txt");
    info6.Create();
    //注意:创建之前,先用FileExists 判断一下,创建的文件是否存在。
    

7、删除文件

    //删除方法一、
    File.Delete(@".\创建文件夹1\1.txt");
    //删除方法二、使用FileInfo类删除文件
    FileInfo info7 = new FileInfo(@".\创建文件夹1\2.txt");
    info7.Delete();

8、复制、剪切文件

    //复制文件
    File.Copy(@".\创建文件夹1\1.txt", @".\创建文件夹1\2.txt");//(old,new)
    //剪切文件
    File.Move(@".\创建文件夹1\1.txt", @".\创建文件夹1\2.txt");
    //使用FileInfo类复制文件
    FileInfo info8_1 = new FileInfo(@".\创建文件夹1\1.txt");
    info8_1.CopyTo(@".\创建文件夹1\2.txt");
    //使用FileInfo类剪切文件
    FileInfo info8_2 = new FileInfo(@".\创建文件夹1\1.txt");
    info8_2.MoveTo(@".\创建文件夹1\2.txt");

9、读/写文件

    //写入方式FileStream文件流对象写入数据实例代码
    string path1 = @".\创建文件夹1\1.txt";
    //判断是否存在文件
    if (File.Exists(path1)) {
        if (!File.Exists(path1))
        {
            //创建文件
            using (FileStream fs = File.Create(path1))
            {
                byte[] info9 = new UTF8Encoding(true).GetBytes("new text");//引入头部文件:using System.Text; 否则会报错
                //添加数据到文件中
                fs.Write(info9,0,info9.Length);
            }
        }
    }
    File.Open(path1,FileMode.OpenOrCreate);
    //说明:File.Open(参数1,参数2)
    //参数1:为需要打开文件的文件路径,
    //参数2:为读取权限:有如下几种权限:
    //Open 以只读的权限打开文件、Creat 以写的权限打开文件、OpenOrCreate:以读/写的权限打开文件、CreatNew:以创建新文件的方式打开文件

10、FileStream文件流对象读取数据

    string path2 = @".\创建文件夹1\2.txt";
    using (FileStream fs1 = File.Open(path2, FileMode.Open, FileAccess.Read, FileShare.None))
    {
        byte[] b = new Byte[1024];//创建一个byte类型的数组b,并为其分配空间1024
        UTF8Encoding temp = new UTF8Encoding(true);
        while (fs1.Read(b, 0, b.Length) > 0)
        {
            Console.WriteLine(temp.GetString(b));
        }
    }
  }
}