Unity顺序读取C:\Kistler\DynoWare\Data文件下的所有文本文档的名称,每次执行该代码,将读取的文本文档名称与之前读取的文本文档名称进行对比,再次写入时,删除C:\Kistler\zhengti shuju1.txt里面以前读取的数据,只写入与上一次文本文档名称不同的文本文档里面的数据。整体代码
时间: 2023-07-16 13:15:12 浏览: 76
以下是一个可能的解决方案:
```csharp
using System.Collections.Generic;
using System.IO;
using UnityEngine;
public class DataReader : MonoBehaviour
{
private string dataFolderPath = @"C:\Kistler\DynoWare\Data";
private string outputFilePath = @"C:\Kistler\zhengti shuju1.txt";
private string lastFileName;
private void Start()
{
// 读取上一次处理的文件名
if (File.Exists(outputFilePath))
{
lastFileName = File.ReadAllText(outputFilePath);
}
// 获取所有文本文件的路径
string[] filePaths = Directory.GetFiles(dataFolderPath, "*.txt");
// 遍历所有文本文件
foreach (string filePath in filePaths)
{
string fileName = Path.GetFileName(filePath);
// 如果当前文件名与上一次处理的文件名相同,跳过不处理
if (fileName == lastFileName)
{
continue;
}
// 读取当前文件内容并写入输出文件
string fileContent = File.ReadAllText(filePath);
File.WriteAllText(outputFilePath, fileContent);
// 记录当前处理的文件名
lastFileName = fileName;
File.WriteAllText(outputFilePath, lastFileName);
}
}
}
```
该代码在 `Start` 方法中执行,首先读取上一次处理的文件名(如果存在)。然后,通过 `Directory.GetFiles` 方法获取所有文本文件的路径,遍历所有文本文件,对于每个文件,如果当前文件名与上一次处理的文件名相同,则跳过不处理;否则,读取当前文件内容并写入输出文件,同时记录当前处理的文件名。最后,将当前处理的文件名写入输出文件,以便下一次执行时使用。
需要注意的是,该代码中的路径都是硬编码的,应根据实际情况进行修改。此外,该代码假定所有文本文件都是 UTF-8 编码的,如果不是,则需要相应地修改读写文件的方法。
阅读全文