5.Directory文件夹类、DirectoryInfo文件夹信息类和FileInfo文件信息类

5.文件操作相关-文件夹相关


5.1 知识点

文件夹操作是指什么

  • 平时我们可以在操作系统的文件管理系统中通过一些操作增删查改文件夹。
  • 我们目前要学习的就是通过代码的形式来对文件夹进行增删查改的操作。

C#提供给我们的文件夹操作公共类

  • 类名: Directory
  • 命名空间:using System.IO

Directory.Exists 判断路径下文件夹是否存在

//Exists方法 传入判断路径 文件夹是否存在
if ( Directory.Exists(Application.dataPath + "/二进制教程" + "/Lesson05_文件操作相关_文件夹相关" + "/Lesson05_文件操作相关_文件夹相关"))
{
    print("存在 Lesson05_文件操作相关_文件夹相关 文件夹");
}
else
{
    print(" Lesson05_文件操作相关_文件夹相关 不存在");
}

Directory.CreateDirectory 创建文件夹

//CreateDirectory方法 创建文件夹 已经存在了的话不会覆盖 会返回文件夹信息
DirectoryInfo directoryInfo = Directory.CreateDirectory(Application.dataPath + "/二进制教程" + "/Lesson05_文件操作相关_文件夹相关" + "/Lesson05_文件操作相关_文件夹相关");

Directory.Delete 删除文件夹

//Delete方法 删除文件夹
//参数一:路径
//参数二:是否删除非空目录,如果为true,将删除整个目录,如果是false,仅当该目录为空时才可删除。默认是false,就是默认一定要文件夹是空的才删除
Directory.Delete(Application.dataPath + "/二进制教程" + "/Lesson05_文件操作相关_文件夹相关" + "/Lesson05_文件操作相关_文件夹相关");

Directory.GetDirectories 查找文件夹和所有子文件夹

//GetDirectories方法 查找文件夹
//得到指定路径下所有文件夹名 只能打印文件夹名 不能打印文件名
string[] strs = Directory.GetDirectories(Application.dataPath);
for (int i = 0; i < strs.Length; i++)
{
    //print(strs[i]);
}

Directory.GetFiles 查找文件和所有子文件

//得到指定路径下所有文件名 只能打印文件名 不能打印文件夹名
strs = Directory.GetFiles(Application.dataPath);
for (int i = 0; i < strs.Length; i++)
{
    print(strs[i]);
}

Directory.Move 移动文件夹

//Move方法 移动文件夹
//如果第二个参数所在的路径 已经存在了一个同名的文件夹 那么会报错
//移动会把文件夹中下的所有内容一起移到新的路径 之前的文件夹就没了
Directory.Move(Application.dataPath + "/二进制教程" + "/Lesson05_文件操作相关_文件夹相关" + "/Lesson05_文件操作相关_文件夹相关",
Application.dataPath + "/二进制教程" + "/Lesson05_文件操作相关_文件夹相关" + "/Lesson05_文件操作相关_文件夹相关移动后");

DirectoryInfo和FileInfo

DirectoryInfo目录信息类

  • 我们可以通过它获取文件夹的更多信息,它主要出现在创建文件夹方法的返回值和查找上级文件夹信息。
Directory.CreateDirectory得到DirectoryInfo对象
//创建文件夹方法的返回值 用目录信息类接
DirectoryInfo directoryInfo1 = Directory.CreateDirectory(Application.dataPath + "/二进制教程" + "/Lesson05_文件操作相关_文件夹相关" + "/创建文件夹方法的返回值");
Directory.FullName 全路径
//全路径
print("创建文件夹方法的返回值 全路径" + directoryInfo1.FullName);
Directory.Name 文件名
//文件名
print("创建文件夹方法的返回值 文件名" + directoryInfo1.Name);
Directory.GetParent 查找上级文件夹信息
//查找上级文件夹信息
directoryInfo1 = Directory.GetParent(Application.dataPath + "/二进制教程" + "/Lesson05_文件操作相关_文件夹相关" + "/创建文件夹方法的返回值");
//全路径
print("查找上级文件夹信息 全路径" + directoryInfo1.FullName);
//文件名
print("查找上级文件夹信息 文件名" + directoryInfo1.Name);
DirectoryInfo.GetDirectories 得到所有子文件夹信息
//GetDirectories方法 得到所有子文件夹的目录信息
DirectoryInfo[] directoryInfos = directoryInfo1.GetDirectories();

FileInfo文件信息类

DirectoryInfo.GetFiles 得到所有子文件信息
//GetFiles方法 可以通过DirectoryInfo得到该文件下的所有文件信息
FileInfo[] fileInfos = directoryInfo1.GetFiles();
for (int i = 0; i < fileInfos.Length; i++)
{
    print("**************");
    print(fileInfos[i].Name);//文件名
    print(fileInfos[i].FullName);//路径
    print(fileInfos[i].Length);//字节长度
    print(fileInfos[i].Extension);//后缀名
}

总结

  • Directory 提供给我们了常用的文件夹相关操作的 API,只需要熟练使用它即可。
  • DirectoryInfoFileInfo 一般在多文件夹和多文件操作时会用到,了解即可。目前用的相对较少,它们的用法和 DirectoryFile 类的用法大同小异。

5.2 知识点代码

using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;

public class Lesson05_文件操作相关_文件夹相关 : MonoBehaviour
{
    void Start()
    {
        #region 知识点一 文件夹操作是指什么?
        //平时我们可以在操作系统的文件管理系统中
        //通过一些操作增删查改文件夹

        //我们目前要学习的就是通过代码的形式
        //来对文件夹进行增删查改的操作
        #endregion

        #region 知识点二 C#提供给我们的文件夹操作公共类
        //类名:Directory
        //命名空间:using System.IO

        //Exists方法 传入判断路径 文件夹是否存在
        if ( Directory.Exists(Application.dataPath + "/二进制教程" + "/Lesson05_文件操作相关_文件夹相关" + "/Lesson05_文件操作相关_文件夹相关"))
        {
            print("存在 Lesson05_文件操作相关_文件夹相关 文件夹");
        }
        else
        {
            print(" Lesson05_文件操作相关_文件夹相关 不存在");
        }

        //CreateDirectory方法 创建文件夹 已经存在了的话不会报仇 会返回文件夹信息
        DirectoryInfo directoryInfo = Directory.CreateDirectory(Application.dataPath + "/二进制教程" + "/Lesson05_文件操作相关_文件夹相关" + "/Lesson05_文件操作相关_文件夹相关");

        //Delete方法 删除文件夹
        //参数一:路径
        //参数二:是否删除非空目录,如果为true,将删除整个目录,如果是false,仅当该目录为空时才可删除。默认是false,就是默认一定要文件夹是空的才删除
        //Directory.Delete(Application.dataPath + "/二进制教程" + "/Lesson05_文件操作相关_文件夹相关" + "/Lesson05_文件操作相关_文件夹相关");

        //GetDirectories方法 查找文件夹和文件
        //得到指定路径下所有文件夹名 只能打印文件夹名 不能打印文件名
        string[] strs = Directory.GetDirectories(Application.dataPath);
        for (int i = 0; i < strs.Length; i++)
        {
            //print(strs[i]);
        }

        //得到指定路径下所有文件名 只能打印文件名 不能打印文件夹名
        strs = Directory.GetFiles(Application.dataPath);
        for (int i = 0; i < strs.Length; i++)
        {
            print(strs[i]);
        }

        //Move方法 移动文件夹
        //如果第二个参数所在的路径 已经存在了一个同名的文件夹 那么会报错
        //移动会把文件夹中下的所有内容一起移到新的路径 之前的文件夹就没了
        //Directory.Move(Application.dataPath + "/二进制教程" + "/Lesson05_文件操作相关_文件夹相关" + "/Lesson05_文件操作相关_文件夹相关",
        //    Application.dataPath + "/二进制教程" + "/Lesson05_文件操作相关_文件夹相关" + "/Lesson05_文件操作相关_文件夹相关移动后");

        #endregion

        #region 知识点三 DirectoryInfo和FileInfo

        //DirectoryInfo目录信息类
        //我们可以通过它获取文件夹的更多信息
        //它主要出现在创建文件夹方法的返回值和查找上级文件夹信息

        //创建文件夹方法的返回值 用目录信息类接
        DirectoryInfo directoryInfo1 = Directory.CreateDirectory(Application.dataPath + "/二进制教程" + "/Lesson05_文件操作相关_文件夹相关" + "/创建文件夹方法的返回值");
        //全路径
        print("创建文件夹方法的返回值 全路径" + directoryInfo1.FullName);
        //文件名
        print("创建文件夹方法的返回值 文件名" + directoryInfo1.Name);

        //查找上级文件夹信息
        directoryInfo1 = Directory.GetParent(Application.dataPath + "/二进制教程" + "/Lesson05_文件操作相关_文件夹相关" + "/创建文件夹方法的返回值");
        //全路径
        print("查找上级文件夹信息 全路径" + directoryInfo1.FullName);
        //文件名
        print("查找上级文件夹信息 文件名" + directoryInfo1.Name);

        //GetDirectories方法 得到所有子文件夹的目录信息
        DirectoryInfo[] directoryInfos = directoryInfo1.GetDirectories();

        //FileInfo文件信息类
        //GetFiles方法 可以通过DirectoryInfo得到该文件下的所有文件信息
        FileInfo[] fileInfos = directoryInfo1.GetFiles();
        for (int i = 0; i < fileInfos.Length; i++)
        {
            print("**************");
            print(fileInfos[i].Name);//文件名
            print(fileInfos[i].FullName);//路径
            print(fileInfos[i].Length);//字节长度
            print(fileInfos[i].Extension);//后缀名
        }

        #endregion

        #region 总结
        //Directory提供给我们了常用的文件夹相关操作的API
        //只需要熟练使用它即可

        //DirectoryInfo和FileInfo 一般在多文件夹和多文件操作时会用到
        //了解即可
        //目前用的相对较少 他们的用法和Directory和File类的用法大同小异
        #endregion
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏