2008-12-23 24 views
7

Bir kayıt dosyası diyaloğu açmak istiyorum, kullanıcının bir dosya adı girmesini ve eğer .csv uzantısını unutabiliyorlarsa, onu taramalı hale getirmeliyim.AddExtension özelliği C# 2.0'de nasıl çalışır?

O SaveFileDialog AddExtension özelliği çalışacak gibi görünüyor, ama onun buna gerek yoktur. DefaultExt özelliğini bile .csv olarak ayarladım ve hala hiçbir şey alamayacak. Dosyam iyi kaydedildi, ancak uzantıyı koruyor, böylece kullanıcı dosyayı çift tıklayamıyor ve Excel'de açamıyor.

Açık bir şey eksik olmalıyım. İşte

 SaveFileDialog sfd = new SaveFileDialog(); 
     sfd.DefaultExt = "*.csv"; 
     sfd.Filter = "Comma Separated(*.csv)|*.*"; 
     if (sfd.ShowDialog() == DialogResult.OK) 
     { 
      // Do my file saving 
     } 

cevap

12

sadece DefaultExt için "csv" kullanmayı deneyin ne var - sen using olmalı, ayrıca bu (o IDisposable olduğunu):

 using (SaveFileDialog sfd = new SaveFileDialog()) 
     { 
      sfd.AddExtension = true; 
      sfd.DefaultExt = "csv"; 
      sfd.Filter = "Comma Separated(*.csv)|*.*"; 
      if (sfd.ShowDialog() == DialogResult.OK) 
      { 
       // Do my file saving 
      } 
     } 
+0

Şüphelendiğim gibi, açık bir şey eksikti. Yeniden kurtarma için yığın taşması. Bu muhtemelen benim projemi 100 dolar kurtardı. –

0

O uzantısı tack gelmez iletişim kutusu, olmasına rağmen. Bunun yerine, iletişim kutusu kapandığında sfd.filename uzantısına daralır.