Unity顺序读取一个文件下的所有文本文档的名称,每次执行该代码,将读取的文本文档名称与之前读取的文本文档名称进行对比,再次写入时,删除指定路径下的文本文档里面以前读取的数据,只写入与上一次文本文档名称不同的文本文档里面的数据。
时间: 2023-11-22 16:53:12 浏览: 52
Unity Excel 文件操作读取写入等
你可以使用以下代码实现:
```csharp
using System.Collections.Generic;
using System.IO;
using UnityEngine;
public class FileHandler : MonoBehaviour
{
private string folderPath = "Path/To/Your/Folder"; // 指定的文件夹路径
private string previousFileName; // 上一次读取的文件名
private List<string> previousFileData; // 上一次读取的文件数据
private void Start()
{
previousFileData = new List<string>();
ReadFolder();
}
// 读取指定文件夹下的所有文本文件
private void ReadFolder()
{
DirectoryInfo dir = new DirectoryInfo(folderPath);
FileInfo[] files = dir.GetFiles("*.txt");
foreach (FileInfo file in files)
{
ReadFile(file.FullName);
}
}
// 读取指定文件的数据
private void ReadFile(string filePath)
{
string fileName = Path.GetFileName(filePath);
if (previousFileName != fileName)
{
previousFileData.Clear(); // 清空上一次读取的数据
}
List<string> newFileData = new List<string>();
using (StreamReader reader = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
if (!previousFileData.Contains(line)) // 如果上一次读取的数据不包含当前行数据
{
newFileData.Add(line); // 添加到新的数据列表中
}
}
}
WriteFile(filePath, newFileData); // 写入新的数据到文件中
previousFileName = fileName; // 更新上一次读取的文件名
previousFileData.AddRange(newFileData); // 更新上一次读取的数据
}
// 写入数据到指定文件
private void WriteFile(string filePath, List<string> data)
{
using (StreamWriter writer = new StreamWriter(filePath, true))
{
foreach (string line in data)
{
writer.WriteLine(line);
}
}
}
}
```
这段代码会读取指定文件夹下的所有文本文件,并且会记录上一次读取的文件名和数据。每次读取一个新的文件时,会将上一次读取的数据与当前文件的数据进行对比,只写入上一次没有包含的数据。写入数据的代码使用了 `StreamWriter` 类,它会在文件末尾追加新的数据。
阅读全文