Unity C# 基础复习23——IO简单介绍、目录和文件的操作、递归目录、路径处理类(P425-P430)

一、

1、IO命名空间包含便于在数据流和文件中读取和写入数据的类

2、IO命名空间中用于文件目录操作类

二、

System.IO命名空间下提供了三种操作目录的类:

Directory 静态类提供通过目录和子目录进行创建、移动和删除等静态方法。

DirectoryInfo 提供通过目录和子目录进行创建、移动和删除等实例方法。

Path 静态类的成员使用户可以快速方便的对文件或者目录路径信息的String实例,执行常见静态操作方法。

File提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建FileStream。Filelnfo类提供实例方法。
Directory提供通过目录和子目录进行创建、移动和枚举的静态方法。
Directorylnfo类提供实例方法
Filelnfo提供用于创建、复制、删除、移动和打开文件的实例方法,并协助创建FileStream。File类提供静态方法。
Directorylnfo提供通过目录和子目录进行创建、移动和枚举的实列方
Directory类提供静态方法。

三、

1、IO是解决ROM和其他持久化存储介质之间的桥梁,用IO架设IO流,通过IO流来传输数据。

2、带Info的都是按照对象的方式处理的。不带Info都是用 类名.方法 进行处理。结果都是一样,看个人使用习惯,静态类每次使用都要添加路径,而带Info创建对象只需给一次。

using System;
using System.IO;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            //OpDirectory();

            //OpFile();

            //获取目录下的所有子目录
            //ShowSubDirs(@"C:\Program Files");

            //获取目录下的所有文件
            //ShowSubFiles(@"C:\Program Files\7-Zip");

            //ShowAll(@"C:\Program Files\7-Zip");

            FilePath();
        }

        public static void FilePath() 
        {
            //拿到文件所在目录
            Console.WriteLine(Path.GetDirectoryName(@"C:\mydir\1.1.txt"));
            //拿到带后缀名的文件
            Console.WriteLine(Path.GetFileName(@"C:\mydir\1.1.txt"));
            //拿到不带后缀名的文件
            Console.WriteLine(Path.GetFileNameWithoutExtension(@"C:\mydir\1.1.txt"));
            //拿到文件后缀名
            Console.WriteLine(Path.GetExtension(@"C:\mydir\1.1.txt"));
            //创建临时文件
            Console.WriteLine(Path.GetTempFileName());
            string path1 = @"test";
            string path2 = "role.sav";
            //不需要自己添加分隔符
            Console.WriteLine(Path.Combine(path1, path2));

        }

        //File方法  文件的操作
        public static void OpFile() 
        {
            //一
            //Directory.CreateDirectory(@"C:\aaa");

            *覆盖式的创建
            //File.Create(@"C:\aaa\1.txt");

            //为了防止文件覆盖,可以先判断文件是否存在
            //if (File.Exists(@"C:\aaa\1.txt") == false) 
            //{
            //    File.Create(@"C:\aaa\1.txt");
            //}

            //二、用对象的方式更加方便
            FileInfo file = new FileInfo(@"C:\aaa\1.txt");
            if (file.Exists == false) 
            {
                file.Create();
            }
            //永久删除文件
            file.Delete();
        }


        //Directory方法  目录的操作
        public static void OpDirectory() 
        {
            /*静态类*/
            //创建一个目录,*如果有重名则会置之不理
            Directory.CreateDirectory(@"C:\mydir");
            Console.WriteLine(Directory.Exists(@"C:\mydir"));
            //删除目录
            Directory.Delete(@"C:\mydir");
            //删除目录(包括目录下面的子目录和文件)
            Directory.Delete(@"C:\mydir", true);

            /*用对象的方式,与上边是一样,但是更加方便一下*/
            DirectoryInfo dir = new DirectoryInfo(@"C:\mydir");
            dir.Create();
            dir.Delete(true);
        }

        //获得所有子目录
        public static void ShowSubDirs(String path) 
        {
            //可以获得所有子目录
            string[] subDirs = Directory.GetDirectories(path);
            foreach (var item in subDirs)
            {
                Console.WriteLine(item);
            }
        }

        //获得目录下的所有文件
        public static void ShowSubFiles(String path) 
        {
            DirectoryInfo myDir = new DirectoryInfo(path);
            //非静态类得到的是数据的实体而不是String
            FileInfo[] files = myDir.GetFiles();
            foreach (var item in files)
            {
                //不带路径
                //Console.WriteLine(item.Name);
                //带路径
                Console.WriteLine(item.FullName);
            }
        }

        /// <summary>
        /// 查看某个目录中的子文件和子目录
        /// </summary>
        /// <param name="path">要查看的路径</param>
        public static void ShowAll(String path) 
        {
            //先查看目录
            foreach (var item in Directory.GetDirectories(path)) 
            {
                Console.WriteLine(item);
                ShowAll(item);
            }

            //查看所有的子文件
            foreach (var item in Directory.GetFiles(path))
            {
                Console.WriteLine(item);
            }
        }
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值