检查下述代码 using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; public class NewBehaviourScript6 : MonoBehaviour { public string folderPath; // 存放文本文档的文件夹路径 public string targetFilePath; // 目标文件的路径 private List<string> allData; // 存储所有文本文档中的数据 void Start() { allData = new List<string>(); ReadAllFiles(); WriteToFile(); } // 读取指定文件夹下的所有文本文档 void ReadAllFiles() { DirectoryInfo dir = new DirectoryInfo(folderPath); foreach (FileInfo file in dir.GetFiles("C:\\Kistler\\DynoWare\\Data", "*.txt")) // 只读取txt文件 { StreamReader reader = new StreamReader(file.FullName); string data = reader.ReadToEnd(); reader.Close(); allData.Add(data); } } // 将所有数据写入目标文件,并删除之前已经写入的数据 void WriteToFile() { StreamWriter writer = new StreamWriter("C:\\Kistler\\zhengti shuju1.txt", false); // false 表示覆盖原有内容 foreach (string data in allData) { writer.WriteLine(data); } writer.Close(); } }
时间: 2023-07-16 15:13:55 浏览: 95
代码存在一些问题:
1. 在 foreach 循环中,应该使用 file.Extension 来筛选文件类型,而不是写死为 ".txt"。
2. 在 foreach 循环中,应该使用 file.FullName 来获取文件的完整路径,而不是将文件夹路径和文件名拼接。
修改后的代码如下:
```csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
public class NewBehaviourScript6 : MonoBehaviour
{
public string folderPath; // 存放文本文档的文件夹路径
public string targetFilePath; // 目标文件的路径
private List<string> allData; // 存储所有文本文档中的数据
void Start()
{
allData = new List<string>();
ReadAllFiles();
WriteToFile();
}
// 读取指定文件夹下的所有文本文档
void ReadAllFiles()
{
DirectoryInfo dir = new DirectoryInfo(folderPath);
foreach (FileInfo file in dir.GetFiles("*.txt")) // 只读取txt文件
{
StreamReader reader = new StreamReader(file.FullName);
string data = reader.ReadToEnd();
reader.Close();
allData.Add(data);
}
}
// 将所有数据写入目标文件,并删除之前已经写入的数据
void WriteToFile()
{
StreamWriter writer = new StreamWriter(targetFilePath, false); // false 表示覆盖原有内容
foreach (string data in allData)
{
writer.WriteLine(data);
}
writer.Close();
}
}
```
阅读全文