Добавить данные в существующий файл в C #

я написал следующий код, чтобы добавить данные с существующими данными, как есть, но мой код перезаписать это

что я должен сделать, чтобы изменения кода добавили данные.

protected void Page_Load(object sender, EventArgs e)
{
    fname = Request.Form["Text1"];
    lname = Request.Form["Text2"];
    ph = Request.Form["Text3"];
    Empcode = Request.Form["Text4"];

    string filePath = @"E:Employee.txt";
    if (File.Exists(filePath))
    {
        //StreamWriter SW;
        //SW = File.CreateText(filePath);
        //SW.Write(text);
        //SW.Close();
        FileStream aFile = new FileStream(filePath, FileMode.Create, FileAccess.Write);
        StreamWriter sw = new StreamWriter(aFile);
        sw.WriteLine(Empcode);
        sw.WriteLine(fname);
        sw.WriteLine(lname);
        sw.WriteLine(ph);
        sw.WriteLine("**********************************************************************");

        sw.Close();
        aFile.Close();
    }
    else
    {
        //sw.Write(text);
        //sw.Flush();
        //sw.Close();
        //StreamWriter SW;
        //SW = File.AppendText(filePath);
        //SW.WriteLine(text);
        //SW.Close();

        FileStream aFile = new FileStream(filePath, FileMode.Append, FileAccess.Write);
        StreamWriter sw = new StreamWriter(aFile);

        sw.WriteLine(Empcode);
        sw.WriteLine(fname);
        sw.WriteLine(lname);
        sw.WriteLine(ph);
        sw.WriteLine("**********************************************************************");

        sw.Close();
        aFile.Close();
        //System.IO.File.WriteAllText(filePath, text);
    }
    Response.Write("Employee Add Successfully.........");
}

Ответы на вопрос(5)

Решение Вопроса

доктор для FileMode.Append говорит:

Opens the file if it exists and seeks to the end of the file, or creates a new file. This operation requires FileIOPermissionAccess.Append permission. FileMode.Append can be used only in conjunction with FileAccess.Write. Trying to seek to a position before the end of the file throws an IOException exception, and any attempt to read fails and throws an NotSupportedException exception.

Итакif заявление больше не нужно, потому чтоFileMode.Append автоматически создает файл, если он не существует.

Таким образом, полное решение будет:

using (FileStream aFile = new FileStream(filePath, FileMode.Append, FileAccess.Write))
using (StreamWriter sw = new StreamWriter(aFile)) {
    sw.WriteLine(Empcode);
    sw.WriteLine(fname);
    sw.WriteLine(lname);
    sw.WriteLine(ph);
    sw.WriteLine("**********************************************************************");
}

Подсказка: используйтеusing потому что он автоматически закрывает ресурсы, также, когда происходит исключение.

 08 июн. 2012 г., 11:46
Ах, я вижу, не просматривал весь код :)
 08 июн. 2012 г., 11:44
Он уже получил это, просто не в том месте. :)
 08 июн. 2012 г., 11:51
Спасибо @Chris, я обновляю свой ответ.

+ ИзменитьFile.Exists(filePath) в!File.Exists(filePath) Или даже лучше, всегда используйте режим добавления. Он создаст файл, если он не существует

Вы должны положить

  if (!File.Exists(filePath)) 

вместо

  if (File.Exists(filePath))
 swapnil08 июн. 2012 г., 11:44
if (! File.Exists (filepath)) только если файл не существует, он создает файл.

Вы создаете файл, если он существует, и добавляете его, если он не существует. Это противоположно тому, что вы хотите.

Измените это на:

if (!File.Exists(filePath))
 08 июн. 2012 г., 11:48
+1 за объяснение разницы вместо простого перечисления кода
 swapnil08 июн. 2012 г., 11:53
Право это моя глупая ошибка, спасибо

Мне кажется, что операторы if и else должны быть противоположными, не так ли?

Теперь вы создаете файл, когда он существует, и добавляете его, когда он не существует. (Приложение также создает файл, если он еще не существует.)

Ваш ответ на вопрос