【发布时间】:2012-10-17 20:27:09
【问题描述】:
我有一个文件存储在我的应用程序目录中,他有一些站点列表。 我读它没有任何问题,但是当我想写它时,我得到了
System.ArgumentException: Stream is not writeable
这就是我访问文件的方式:
FileStream theTextFileStream = new FileStream(Environment.CurrentDirectory + "/fourmlinks.txt",FileMode.OpenOrCreate);
这是让我期待的功能:
public static void WriteNewTextToFile(string text, FileStream theFile)
{
string fileText = GetAllTextFromFile(theFile);
ArrayList fileLIst = populateListFromText(fileText);
using (StreamWriter fileWriter = new StreamWriter(theFile))
{
fileWriter.Write(String.Empty);
for (int i = 0; i < fileLIst.Count; i++)
{
fileWriter.WriteLine(fileLIst[i].ToString());
}
}
}
该函数读取旧文本和新文本并将其添加到数组中。然后我从所有东西中清理文件,并用我制作的 arry 中的新旧数据重写它。
我不知道这是否会有所帮助,但这是文件属性:
Build Action: None
Copy To Out Put Directory: Copy always
为什么我不能重写文件?
这是我用来读取文件内容的函数:
public static string GetAllTextFromFile(FileStream theFile)
{
string fileText = "";
using (theFile)
{
using (StreamReader stream = new StreamReader(theFile))
{
string currentLine = "";
while ((currentLine = stream.ReadLine()) != null)
{
fileText += currentLine + "\n";
}
}
}
return fileText;
}
【问题讨论】:
-
您是否使用与打开文件相同的
FileStream? -
你如何读取文件?
-
我添加了我用来读取文件的函数。
-
您确认您的文件名正确吗?! “四连”
-
顺便说一句,不要相信
Environment.CurrentDirectory会随时为您提供您期望的目录的路径。请改用此方法:System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location))。取自另一个SO thread。
标签: c# text text-files