#region Environment

Windows 10

Unity 2019.4.16f1c1 LTS

VSCode 1.52

https://github.com/MirzkisD1Ex0/UnityTheGreat.git

#endregion

高清大图警告!

全文左对齐警告!

进行Unity开发时,多少会遇到一些需要从外部读取资源的情况。

如果资源预先打包在Resources中还好说,干干单单的Resource.Load();就能搞定。

但是碰上在后续维护时需要替换程序中某段视频的情况,很适合把视频置于StreamingAssets中。届时也用不着重打包一份程序,只需要把新的视频文件丢进StreamingAssets中替换一下就OK了。

有时想在Unity中显示正在播放的视频的文件名可能就要用到下面的方法。

获取指定<路径>下,全部指定<后缀名>的文件的<文件名>并将其储存于数组中。

// 案例演示内容为<获取StreamingAssets/VideoStroage下所有.mp4文件的文件名>

// 数组尺寸将根据路径下有多少符合条件的文件自动决定

放了两个样本视频,位于StreamingAssets/VideoStorage下。

我们接下来把这两个文件的名字存放在String数组中,以供后续使用。

新建一个C#脚本,红圈内是路径与文件的后缀名,可根据需要自行修改。

将脚本挂载于任意对象上,运行场景,数组将根据文件数量决定自己的长度,同时将文件名分别储存在数组中。

运行后将显示结果。

下面是代码,风格比较猖獗,大佬们请自行抽取核心内容,如果有疑问记得留言或联系我yo。

#region Code↓↓↓

using UnityEngine;
using System.IO;
/// <summary>
/// 获取某个目录下指定类型的文件名
/// </summary>
public class FileNameCapture : MonoBehaviour
{
    public string[] Files; // 储存文件名的数组
    private string fileStoragePath = Application.streamingAssetsPath + "/" + "VideoStorage"; // 文件路径
    private string fileSuffix = ".mp4"; // 文件后缀名
    private void Start()
    {
        GetFileName(fileStoragePath, fileSuffix, ref Files);
    }
    /// <summary>
    /// 获取路径下全部指定类型的文件名
    /// </summary>
    /// <param name="path">路径</param>
    /// <param name="suffix">后缀名</param>
    /// <param name="files">用以存储文件名的数组</param>
    private void GetFileName(string path, string suffix, ref string[] files)
    {
        if (!Directory.Exists(path)) // 如果路径不存在 // 返回 0
        {
            return;
        }
        DirectoryInfo directoryInfo = new DirectoryInfo(path); // 获取文件信息
        FileInfo[] fileInfos = directoryInfo.GetFiles("*", SearchOption.AllDirectories);
        #region 获取文件数组尺寸
        int arraySize = 0;
        for (int i = 0; i < fileInfos.Length; i++)
        {
            if (fileInfos[i].Name.EndsWith(fileSuffix))
            {
                arraySize++;
                continue;
            }
        }
        #endregion
        files = new string[arraySize]; // 新建数组
        #region 将符合要求的文件名存至数组
        int arrayIndex = 0;
        for (int i = 0; i < fileInfos.Length; i++)
        {
            if (fileInfos[i].Name.EndsWith(fileSuffix))
            {
                files[arrayIndex++] = fileInfos[i].Name; // 把符合要求的文件名存储至数组中
                continue;
            }
        }
        #endregion
        return;
    }
}

#endregion

#region Notes

博观而约取,厚积而薄发

本教程仅为抛砖引玉之用,希望能够借此给予寻求思路的开发者们一些收获。

如果文章中出现了语混乱序、错鳖字、缺少标点符号的情况还请见谅。

因为排Word的时候我有点困。

// 现在我的脑子里就像是有两头#964B00的三边面熊举着我的室友在一个梯形的麦片盒上跳舞一样混乱。

对了,记得来我的GitHub看看。

对了对了,加我微信,我们来聊天,qq1005410781(这真的不是QQ号)。

#endregion

<UnityTheGreat><001>获取指定目录下指定类型的所有文件的名称的更多相关文章

  1. delphi遍历指定目录下指定类型文件的函数

    遍历指定目录下指定类型文件的函数// ================================================================// 遍历某个文件夹下某种文件,/ ...

  2. Java基础知识强化之IO流笔记49:IO流练习之 复制指定目录下指定后缀名的文件并修改名称的案例

    1. 复制指定目录下指定后缀名的文件并修改名称的案例     需求:复制指定目录下的指定文件,并修改后缀名.  • 指定的文件是:.java文件.     • 指定的后缀名是:.jad     • 指 ...

  3. JAVA输出指定目录下的子目录和子文件

    题目:给定一个目录,要求输出这个目录下面的子目录和子文件 逻辑: 先判断给定的是不是一个合法的目录,如果不是,则提示给定错误 如果是目录,那么使用File.listFile()获得这个目录下文件名的数 ...

  4. linux 中 如何 搜索 指定目录 下 指定文件 的 指定内容

    开发时,经常遇到 全局查找某些代码 linux 中 如何 检索 某 目录下指定文件 的 指定内容如下: //.点为查找当前目录 下 的 所有 *.php 文件里 有 hello 的文件 find . ...

  5. 运维笔记--Linux查找指定目录下某段时间的文件

    查找指定目录下,60天之前的文件:find /mnt/xml_data -mtime +60 -name "*.xml" 找到并统计数量:find /mnt/xml_data -m ...

  6. [bash]查找指定目录下符合格式的txt文件

    需求: 查找指定目录下符合yyyy-MM-dd(-b)NNN.txt格式的文件,如“2020-03-22-b888.txt” 目标目录内容: [root@localhost bashs]# ll /r ...

  7. Java基础知识强化之IO流笔记10:File类输出指定目录下指定后缀名的文件名称案例(File类的文件过滤器方法改进list( FilenameFilter ff))

    1. 案例: 判断F盘下是否有后缀名为.jpg的文件,如果有的话,就输出这个文件名. 2. 案例代码如下: (1)思路是:先获取所有的文件和文件夹封装的对象,然后遍历的时候,依次判断,如果满足条件就输 ...

  8. windows 批处理删除指定目录下 指定类型 指定天数之前文件

    删除D:\test下5天前所有文件,如下: @echo offset SrcDir=D:\testset DaysAgo=5forfiles /p %SrcDir% /s /m *.* /d -%Da ...

  9. OpenCV代码提取:遍历指定目录下指定文件的实现

    前言 OpenCV 3.1之前的版本,在contrib目录下有提供遍历文件的函数,用起来比较方便.但是在最新的OpenCV 3.1版本给去除掉了.为了以后使用方便,这里将OpenCV 2.4.9中相关 ...

随机推荐

  1. Spark闭包 | driver & executor程序代码执行

    Spark中的闭包 闭包的作用可以理解为:函数可以访问函数外部定义的变量,但是函数内部对该变量进行的修改,在函数外是不可见的,即对函数外源变量不会产生影响. 其实,在学习Spark时,一个比较难理解的 ...

  2. freshclam

    1 3 * ** /usr/local/clamav/bin/freshclam 定时更新.定时杀毒

  3. ElasticSearch 分词器,了解一下

    这篇文章主要来介绍下什么是 Analysis ,什么是分词器,以及 ElasticSearch 自带的分词器是怎么工作的,最后会介绍下中文分词是怎么做的. 首先来说下什么是 Analysis: 什么是 ...

  4. 通过jquery 获取下拉列表中选中的值对应的value

    <div class="col-sm-9"> <select id="device-type" class="form-contro ...

  5. 关于Linux虚拟机连接不上网络的问题

    前阵子自学Linux(版本是CentOS6 -VMware ),因为连不上网的问题搁置了一段时间,昨天又重新拾起来,花了一下午时间终于搞定.下面说几点,给自己学习历程一个记录,也希望能帮到其他初学者. ...

  6. Spring Boot 自带缓存及结合 Redis 使用

    本文测试环境: Spring Boot 2.1.4.RELEASE + Redis 5.0.4 + CentOS 7 自带缓存 如果没有使用缓存中间件,Spring Boot 会使用默认的缓存,我们只 ...

  7. redis分布式锁解决超卖问题

    redis事务 redis事务介绍:    1. redis事务可以一次执行多个命令,本质是一组命令的集合. 2.一个事务中的所有命令都会序列化,按顺序串行化的执行而不会被其他命令插入 作用:一个队列 ...

  8. Python中容器指的是什么?

    容器:容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中. 容器是一种可以包含其他类型对象(如列表.元组.字典等)作为元 ...

  9. PyQt学习随笔:QWidget的QFont的kerning、Antialiasing属性用途

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 引言 在Designer中,QWidget的font属性有两个比较陌生 ...

  10. PyQt(Python+Qt)学习随笔:Mode/View中的枚举类 QItemSelectionModel.SelectionFlag取值及含义

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 以上取值可以通过或操作进行组合使用. 老猿Python,跟老猿学Python! 老猿Python博文 ...