Unity Diretory

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

public class DiretoryTest : MonoBehaviour
{
    //文件不同路径写法    
     //  使用斜杠/
     //  使用反斜杠\,需转义 \\
     //             加@,不需要转义\
    string path = "G:/Unity Project/资源库";       
    string path1 = "G:\\Unity Project\\资源库\\01-业务概览\\1-业务概览";
    string path2 = "G:\\Unity Project\\资源库\\01-业务概览\\3-视频案例";
    string path3 = @"G:\Unity Project\资源库\01-业务概览\1-业务概览\幻灯片01.JPG";

    #region System.IO 
    /*
     * Directory 提供 目录和子目录进行创建、移动和删除等静态方法。
     * DirectoryInfo 提供 目录和子目录进行创建、移动和删除等实例方法。
     * Path 静态类的成员使用户可以快速方便的对文件或者目录路径信息的String实例,执行常见静态操作方法。
     * File 提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建FileStream。Filelnfo类提供实例方法。
     * Filelnfo 提供用于创建、复制、删除、移动和打开文件的实例方法,并协助创建FileStream。File类提供静态方法
     */
    #endregion

    /// <summary>
    /// Directory类方法
    /// </summary>
    public void DirectoryMethods()
    {
        #region 1、GetDirectories: 获取当前目录下所有子目录的路径

        string[] filespath = Directory.GetDirectories(path);
        foreach (string item in filespath)
        {
           Debug.Log("File Name: " + Path.GetFileName(item));
        }

        #endregion

        #region 2、GetFiles: 获取当前目录下所有文件的路径

        string[] filespath = Directory.GetFiles(path1);
        foreach (string item in filespath)
        {
           Debug.Log("File Name: " + Path.GetFileName(item));
        }

        #endregion

        #region 3、GetFiles: (按类型)获取当前目录下所有文件的路径

        string[] filespath = Directory.GetFiles(path2, "*");
        //单个文件: "*.*"、"*.jpg"、"*.txt"、"*.mp4"    多个文件:"*.BMP|*.JPG|*.PNG"
        foreach (string item in filespath)
        {
           Debug.Log("File Name: " + Path.GetFileName(item));
        }

        #endregion

    }

    /// <summary>
    /// DirectoryInfo类方法
    /// </summary>
    public void DirectoryInfoMethods()
    {
        #region 1、GetDirectories: 获取当前目录下子目录的路径

        DirectoryInfo d = new DirectoryInfo(path);
        //只获得第一层子文件夹
        DirectoryInfo[] directoryInfo = d.GetDirectories("*", SearchOption.TopDirectoryOnly);
        //获得所有子文件夹
        //DirectoryInfo[] directoryInfo = d.GetDirectories("*", SearchOption.AllDirectories);
        for (int i = 0; i < directoryInfo.Length; i++)
        {
            Debug.Log(directoryInfo[i].FullName);
        }

        #endregion

        #region 2、GetFiles: 获取当前目录下文件的路径

        DirectoryInfo d1 = new DirectoryInfo(path1);
        FileInfo[] f = d1.GetFiles("*", SearchOption.TopDirectoryOnly);
        for (int i = 0; i < f.Length; i++)
        {
            Debug.Log(f[i].FullName);
        }

        #endregion
    }

    /// <summary>
    /// Path类方法
    /// </summary>
    public void PathMethods()
    {
       
        //获取这个文件名
        Debug.Log(Path.GetFileName(path1));         //---->1-业务概览
        Debug.Log(Path.GetFileName(path2));         //---->3-视频案例
        Debug.Log(Path.GetFileName(path3));         //---->幻灯片01.JPG
        //获取文件的父目录
        Debug.Log(Path.GetDirectoryName(path3));    //---->G:\Unity Project\资源库\01-业务概览\1-业务概览
        //获取该文件的扩展名
        Debug.Log(Path.GetExtension(path3));        //---->.JPG
        //获取不带扩展名的文件名
        Debug.Log(Path.GetFileNameWithoutExtension(path3));     //---->幻灯片01
        //获取绝对路径
        Debug.Log(Path.GetFullPath(path3));         //---->G:\Unity Project\资源库\01-业务概览\1-业务概览\幻灯片01.JPG
        //合并文件名
        //Debug.Log(Path.Combine(string pathOne, string pathTwo));

    }

}

猜你喜欢

转载自blog.csdn.net/m0_62921885/article/details/135668845