#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. [原题复现]BJDCTF2020 WEB部分全部解

    简介  原题复现:https://gitee.com/xiaohua1998/BJDCTF2020_January  线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学 ...

  2. CorelDRAW多个文件如何批量导出JPG

    好多同学对于CorelDRAW 2018批量导出图片格式的操作不太了解.这种情况比较常见,比如设计了一本画册,在同一个文档中页面比较多,如果一页一页导出那将是一项巨大的工程,这时候我们就会想到CDR的 ...

  3. Vue Springboot (包括后端解决跨域)实现登录验证码功能详细完整版

    利用Hutool 基于Vue.ElementUI.Springboot (跨域)实现登录验证码功能 前言 一.Hutool是什么? 二.下面开始步入正题:使用步骤 1.先引入Hutool依赖 2.控制 ...

  4. Istio 之ServiceEntry

    使用服务条目资源(ServiceEntry)可以将条目添加到 Istio 内部维护的服务注册表中.添加服务条目后,Envoy 代理可以将流量发送到该服务,就好像该服务条目是网格中的服务一样.通过配置服 ...

  5. Potato家族本地提权分析

    原文来自SecIN社区-作者:Zeva 0x00 前言 在实际渗透中,我们用到最多的就是Potato家族的提权.本文着重研究Potato家族的提权原理以及本地提权细节 0x01 原理讲解 1.利用Po ...

  6. 蒲公英 · JELLY技术周刊 Vol.32: 前端的自我进化之路

    蒲公英 · JELLY技术周刊 Vol.32 前端开发不过是切图仔在那儿瞎鼓捣,没啥门槛,不需要懂计算机原理,不需要懂算法,微服务.高并发这些都不需要懂,拖组件写个页面就好了,数据.逻辑.测试都可以交 ...

  7. EggJS 云原生应用硬核实战(Kubernetes+Traefik+Helm+Prometheus+Grafana),提供 Demo

    介绍 这是一个关于 Egg.js 应用上云️的示例,笔者所在的大前端团队的已应用于生产. CI/CD & DevOps & GitOps & HPA 等这里暂不做讨论,因为每一 ...

  8. 面试官:说一下List排序方法

    1. 前言 排序算是比较高频的面试题了,节前面试了的两家公司都有问到排序问题,整理后分享给大家(文末见总结). 通常我们想到实现排序就是 Collections 工具类的 sort() 方法,而 so ...

  9. 第3.6节 Python字符串基础知识

    一. 引言 前面第二章已经接单介绍了字符串,本来计划讲完列表解析和字典解析再来精讲字符串的内容,但发现要讲列表解析和字典解析需要介绍迭代器和生成器,这个概念比较复杂,老猿还需要复习和验证一下才能完全掌 ...

  10. Python中sort、sorted的cmp参数废弃之后使用cmp_to_key实现类似功能

    Python2.1以前的排序比较方法只提供一个cmp比较函数参数,没有__lt__等6个富比较方法, Python 2.1引入了富比较方法,Python3.4之后作废了cmp参数.相应地从Python ...