Unity首先删除C:\Kistler\zhengti shuju1.txt里面以前的数据,接着读取C:\Kistler\DynoWare\Data文件下的所有文本文档的名称,将其文本文档名称写入C:\Kistler\wenben mingcheng.txt,然后将读取的文本文档名称与C:\Kistler\wenben mingcheng.txt里面的文本文档名称进行对比,最后将与其不同的文本文档名称的文本文档里面的数据写入C:\Kistler\zhengti shuju1.txt。整体代码
时间: 2023-06-30 20:03:59 浏览: 84
以下是一个示例代码,实现了你所需的功能:
```csharp
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
public class TextFileReader : MonoBehaviour
{
private const string dataFolderPath = @"C:\Kistler\DynoWare\Data";
private const string targetFilePath = @"C:\Kistler\zhengti shuju1.txt";
private const string textFileNameListPath = @"C:\Kistler\wenben mingcheng.txt";
void Start()
{
// 删除原有数据
if (File.Exists(targetFilePath))
{
File.Delete(targetFilePath);
}
// 获取所有文本文档的名称
string[] textFileNames = Directory.GetFiles(dataFolderPath, "*.txt");
// 写入文本文档名称到指定文件
File.WriteAllLines(textFileNameListPath, textFileNames);
// 读取目标文件里的所有行
string[] targetFileLines = File.ReadAllLines(targetFilePath);
// 遍历所有文本文档名称
foreach (string textFileName in textFileNames)
{
// 如果文本文档名称不在目标文件里
if (!ContainsLine(targetFileLines, textFileName))
{
// 读取该文本文档的所有行
string[] textFileLines = File.ReadAllLines(textFileName);
// 将该文本文档的所有行写入目标文件
File.AppendAllLines(targetFilePath, textFileLines);
}
}
}
// 判断数组中是否包含某个字符串
private bool ContainsLine(string[] lines, string line)
{
foreach (string l in lines)
{
if (l == line)
{
return true;
}
}
return false;
}
}
```
需要注意的是,在Unity中直接读写C盘的文件需要管理员权限,否则会出现访问被拒绝的错误。另外,如果文件夹或文件不存在,也需要进行相应的判断和处理。
阅读全文