在Unity中,我们可以使用System.IO
命名空间中的Directory
和File
类来获取指定文件夹及其子文件夹下的所有文件。
一、只获取文件夹下所有文件:
using System.Collections.Generic;
using System.IO;
using UnityEngine;
public class FileScanner : MonoBehaviour
{
public string folderPath; // 指定文件夹路径
void Start()
{
List<string> files = GetFilesInFolder(folderPath);
foreach (string file in files)
{
Debug.Log(file);
}
}
List<string> GetFilesInFolder(string folderPath)
{
List<string> files = new List<string>();
if (Directory.Exists(folderPath))
{
string[] currentFiles = Directory.GetFiles(folderPath);
files.Add(currentFiles);
}
else
{
Debug.LogWarning("文件夹路径不存在:" + folderPath);
}
return files;
}
}
二、获取文件夹及其子文件夹下所有文件:
using System.Collections.Generic;
using System.IO;
using UnityEngine;
public class FileScanner : MonoBehaviour
{
public string folderPath; // 指定文件夹路径
void Start()
{
List<string> files = GetFilesInFolder(folderPath);
foreach (string file in files)
{
Debug.Log(file);
}
}
List<string> GetFilesInFolder(string folderPath)
{
List<string> files = new List<string>();
if (Directory.Exists(folderPath))
{
// 获取当前文件夹下的所有文件
string[] currentFiles = Directory.GetFiles(folderPath);
files.Add(currentFiles);
// 递归获取子文件夹下的所有文件
string[] subFolders = Directory.GetDirectories(folderPath);
foreach (string subFolder in subFolders)
{
files.Add(GetFilesInFolder(subFolder));
}
}
else
{
Debug.LogWarning("文件夹路径不存在:" + folderPath);
}
return files;
}
}