Unity读取C:\Kistler\DynoWare\Data文件下的所有文本文档的名称,每次执行该代码,将读取的文本文档名称与之前读取的文本文档名称进行对比,再次写入时,删除C:\Kistler\zhengti shuju1.txt里面以前的数据,只写入与上一次文本文档名称不同的文本文档里面的数据。整体代码
时间: 2023-07-16 10:15:48 浏览: 96
读取Word文档,Unity使用,自测有效
以下是一个示例代码,用于读取C:\Kistler\DynoWare\Data下的所有文本文档的名称,并将其中与上一次读取不同的文本文档里的数据写入C:\Kistler\zhengti shuju1.txt中。
```csharp
using System.Collections.Generic;
using System.IO;
using UnityEngine;
public class ReadData : MonoBehaviour
{
// 上一次读取的文本文档名称
private string lastFileName = "";
// 存储已经读取过的文本文档名称
private List<string> fileNames = new List<string>();
// 存储上一次读取的文本文档中的数据
private List<string> lastData = new List<string>();
// 存储新读取的文本文档中的数据
private List<string> newData = new List<string>();
// 存储最终需要写入的数据
private List<string> finalData = new List<string>();
void Start()
{
// 获取C:\Kistler\DynoWare\Data文件夹下的所有文本文档名称
DirectoryInfo dir = new DirectoryInfo(@"C:\Kistler\DynoWare\Data");
FileInfo[] fileInfo = dir.GetFiles("*.txt");
// 遍历所有文本文档
foreach (FileInfo file in fileInfo)
{
string fileName = file.Name;
// 如果该文本文档已经读取过,则跳过
if (fileNames.Contains(fileName))
{
continue;
}
// 如果该文本文档与上一次读取的文本文档名称相同,则跳过
if (fileName == lastFileName)
{
continue;
}
// 将该文本文档的名称添加到已读取列表中
fileNames.Add(fileName);
// 读取该文本文档中的数据
string[] lines = File.ReadAllLines(file.FullName);
// 将新读取的数据与上一次读取的数据进行对比
foreach (string line in lines)
{
if (!lastData.Contains(line))
{
newData.Add(line);
}
}
// 更新上一次读取的文本文档名称和数据
lastFileName = fileName;
lastData.Clear();
lastData.AddRange(lines);
}
// 将新读取的数据写入C:\Kistler\zhengti shuju1.txt中
if (newData.Count > 0)
{
// 删除C:\Kistler\zhengti shuju1.txt中以前的数据
if (File.Exists(@"C:\Kistler\zhengti shuju1.txt"))
{
File.Delete(@"C:\Kistler\zhengti shuju1.txt");
}
// 将新的数据加入最终需要写入的数据列表中
finalData.AddRange(newData);
// 将最终需要写入的数据写入C:\Kistler\zhengti shuju1.txt中
File.WriteAllLines(@"C:\Kistler\zhengti shuju1.txt", finalData.ToArray());
}
}
}
```
阅读全文