Asp.Net ile bir metin belgesi nasıl oluşturulur? Metin belgesi içindeki veriler nasıl okunur?

notify (538) 7 yıl önce sordu

Asp.Net formumda bir adet texbox bir adet de buton var. Yapmak istedigim ise şu. Butona bastigimda texboxda ki veriyi metinbelgesi.txt'ye aktarmak istiyorum. Ama metinbelgesj.txt de önceden veri varsa bunu silip yenisini yazdirmam gerekiyor. Son olarak ise form her acildiginda pagrload olayinda bu metinbelgesi.txtdeki veriyi texboxa cekmesi gerekiyor.

Toplam 1 cevap


alattin (17125) 7 yıl önce cevapladı

Aşağıda örnek bir kod bulabilirsin.

using System;
using System.IO;
using System.Web.UI;

public partial class Default2 : System.Web.UI.Page
{
    const string dosyaYolu = "~/dosya/metinbelgesi.txt";
    protected void Page_Load(object sender, EventArgs e)
    {

        if (!Page.IsPostBack)
        {
            TextBox1.Text = File.ReadAllText(Server.MapPath(dosyaYolu));
        }
    }

    void DosyaOlustur()
    {
        TextWriter tw = File.CreateText(Server.MapPath(dosyaYolu));
        tw.WriteLine(TextBox1.Text);       
        tw.Close();
       
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        DosyaOlustur();
    }
}

Asp.Net, C# ile dosya oluşturmak istersen TextWriter nesnesini kullanabilirsin. Aslında Dosya yaratma işini File altındaki CreateText  metodu gerçekleştiriyor.  CreateText metodunun dosya oluşturabilmesi için ona dosyanın adını ve yolunu vermeliyiz. Bu yol ve ad şu şekilde olmalı C:\dosya.txt. Yani aslında dosyanın tam fiziksel yolunu vermek gerekiyor.

Fakat Asp.Net sunucu taraflı bir teknoloji olduğundan dolayı biz genelde dosyaların tam yolunu bilmeyiz. Yani ben sunucuya bir default.aspx attığımda bu C sürücüsünde mi D sürücüsündemi, Z sürücüsünde mi bunu bilemem, fakat bilmeme de genelde gerek yoktur.

Server.MapPath işte tam bu noktada devreye girer. Server.MapPath'e uygulamam içindeki bir dosyanın adını verdiğimde o bana dosyanın gerçek yolununu verir.

TextWriter nesnesi altındaki WriteLine metin dosyası içine bir satır veri yazar. Close() metoru ile açık olan nesne kapatılır. Kaynaklar boşaltılır.

PageLoad altınaki ifadelere gelirsek, Page.IsPostBack, sayfa ilk kez mi yükleniyor yoksa form üzerindeki bir buton tıklandı ve sayfa yeniden mi sunucuya gönderildi bunu anlamamızı sağlıyor.

File.ReadAllText ise yolunu verdiğimiz bir metin belgesinin içindeki tüm verileri okuyup text olarak bize döndürüyor.

notify 7 yıl önce

Alattin abi çok sağol da bu dosya oluştur metodu ile eskisi txtyi silip yenisinimi yüklüyor. Yani önceden o dosya zaten var nolucak. Şuanda deneyemediğimden soruyorum :)

alattin 7 yıl önce

Eski dosyanin uzerine yaziyor