none
WİN10 dosya işlemlerinde kitlenme sorunu RRS feed

  • Soru

  • Ne kadar sağlıklı bir kod yapısı bilmiyorum ama kendi bilgisayarım (win10 1607/14393.51) aşağıdaki kod yapısını derlettiğimde dosya olsun olmasın kitlenme problemi yaşıyorum. Dosya yoksa oluşturuyor hem dosya hem uygulama kitleniyor. Dosya bir kaç dakika açılamıyor ve silinemiyor.

      private void yazdır()
            {
                try
                {
    
    
    
                    if (File.Exists(Application.StartupPath + @"\" + textBox1.Text + ".txt"))
                    {
                        DialogResult result = MessageBox.Show("Daha önce liste çıkarılmış yenilemek istiyor musunuz?", "Yenilemek", MessageBoxButtons.YesNo);
                        if (result == DialogResult.Yes)
                        {
    
                            File.Delete(Application.StartupPath + @"\" + textBox1.Text + ".txt");
    
                            for (int i = 2; i < dizis.Count; i++)
                            {
    
    
    
                                StreamWriter yaz;
                                yaz = File.AppendText(Application.StartupPath + @"\" + textBox1.Text + ".txt");
                                yaz.WriteLine(dizis[i]);
                                yaz.Close();
                            }
                        }
                    }
                    else
                    {
    
                        for (int i = 2; i < dizis.Count; i++)
                        {
    
                            StreamWriter yaz;
                            yaz = File.AppendText(Application.StartupPath + @"\" + textBox1.Text + ".txt");
                            yaz.WriteLine(dizis[i]);
                            yaz.Close();
                        }
                    }
    
    
    
                }
                catch (Exception c)
                {
    
                    MessageBox.Show(c.ToString());
                }
    
            }

    //Sorun şu ki bazen kafasına göre çalışıyor bazen çalışmıyor. Projenin aynı zamanda wpf sürümünüde yaptım. Birebir aynı kodlar iki uygulamanında (wpf ve wfa) win 8 başka bir bilgisayarda çalıştırdığımda(iki uygulamayıda defalarca denedim)sorunsuz bir şekilde hem yazma hem silme işlemlerini kitlenmeden yapabiliyor.

    //sorun ne olabilir? Algoritma mı çok kötü benim pc mi sorunlu anlayabilmiş değilim.

    17 Ağustos 2016 Çarşamba 02:03

Yanıtlar

Tüm Yanıtlar

  • Sanırım siz her byte'ı StreamWriter üzerinden yazmaya çalışıyorsunuz. Anlamadığım nokta basit bir dosya içeriği yazmak için neden bu kadar uğraştığınız.

    dizis dediğiniz sanırım bir string ve siz bu string'in tüm karakterlerini WriteLine metodunda tek tek yazıyorsunuz.

    string path = Path.Combine(Application.StartupPath, $"{textBox1.Text}.txt");
    string content = "My Content";
    File.WriteAllText(path, content);



    oguzkurtcuoglu.com


    17 Ağustos 2016 Çarşamba 06:14
  • Yorumunuz için teşekkür ederim dizis bir ArrayList ve yazılan dosyayı tekrar okutuyorum yani satır satır yazdırmam gerekiyor.
    17 Ağustos 2016 Çarşamba 12:24
  • Yorumunuz için teşekkür ederim dizis bir ArrayList ve yazılan dosyayı tekrar okutuyorum yani satır satır yazdırmam gerekiyor.
    File.WriteAllText yerine File.WriteAllLine metodunu kullanmanız yeterli olacaktır.

    oguzkurtcuoglu.com


    17 Ağustos 2016 Çarşamba 13:54