Unity读取C:\Kistler\DynoWare\Data文件下的所有文本文档的名称,每次执行该代码,将读取的文本文档名称与之前读取的文本文档名称进行对比,再次写入时,删除C:\Kistler\zhengti shuju1.txt里面以前的数据,只写入与上一次文本文档名称不同的文本文档里面的数据。整体代码
时间: 2023-11-22 18:54:01 浏览: 62
读取Word文档,Unity使用,自测有效
以下是一个示例的Unity脚本,用于读取指定文件夹下的文本文档名称,并将新的数据写入不同的文本文档中:
```csharp
using UnityEngine;
using System.IO;
using System.Collections.Generic;
public class FileHandler : MonoBehaviour
{
private string folderPath = @"C:\Kistler\DynoWare\Data\"; //指定文件夹路径
private string savedFileName = "zhengti shuju1.txt"; //指定要保存的文件名
private List<string> previousFileNames = new List<string>(); //保存上次读取的文件名列表
void Start()
{
ReadAndWriteFiles();
}
void ReadAndWriteFiles()
{
string[] fileNames = Directory.GetFiles(folderPath, "*.txt"); //获取所有 .txt 文件名
List<string> newFileNames = new List<string>();
foreach (string fileName in fileNames)
{
if (!previousFileNames.Contains(fileName)) //如果是新的文件名
{
newFileNames.Add(fileName);
string textData = File.ReadAllText(fileName); //读取文本数据
//写入数据到新的文本文档中
string newFileName = Path.GetFileName(fileName);
string newFilePath = Path.Combine(folderPath, newFileName);
if (File.Exists(newFilePath))
{
File.Delete(newFilePath); //如果文件已存在,先删除旧文件
}
File.WriteAllText(newFilePath, textData);
Debug.Log("Data saved to: " + newFilePath);
}
}
previousFileNames = new List<string>(fileNames); //更新上次读取的文件名列表
//递归执行 ReadAndWriteFiles() 方法,实现每隔一段时间自动读取和写入文本数据
Invoke("ReadAndWriteFiles", 10f);
}
}
```
该脚本使用了 `Directory.GetFiles()` 方法获取指定文件夹下所有 `.txt` 文件的文件名,并使用 `File.ReadAllText()` 方法读取文本数据。然后,它会将新的文本数据写入到不同的文本文档中。
在 `ReadAndWriteFiles()` 方法中,我们使用 `previousFileNames` 列表保存上次读取的文件名列表,并使用 `newFileNames` 列表保存本次读取的新文件名列表。如果一个文件名在 `previousFileNames` 列表中不存在,就将其添加到 `newFileNames` 列表中,并将该文件的文本数据写入到新的文本文档中。最后,我们使用 `Invoke()` 方法递归调用 `ReadAndWriteFiles()` 方法,实现每隔一段时间自动读取和写入文本数据。
需要注意的是,由于涉及到文件读写操作,我们需要确保 Unity 程序具有足够的权限来访问指定文件夹和文件。如果程序没有权限访问,可能会导致读取和写入操作失败。
阅读全文