2016-04-02 14 views
0

Şu anda bu ise bir listede saklamak (veya sözlük, bir makinede Dosya türü ilişkilerini (Ben büyük sormak biliyorum) TÜM için dosya türü ilişkilerini almaya çalışıyorum kurulumu daha iyi?) daha sonra bir uygulama yüklendikten sonra bu listeyi bir listeyle karşılaştırarak (yeni liste, yeni dergi yeni enstantane) karşılaştırır ve yeni bir listeden herhangi bir fark çıkarır (bu nedenle toplam 3 liste, kurulum öncesi, sonradan karşılaştırma, karşılaştırma listesi)C# önce dosya türlerini almak ve sonra uygulamadan

Örnek senaryo için: - Adobe Acrobat, .pdf ile ilişkilidir. Bu yüzden .pdf ile tüm çağrışımların bir anlık görüntüsü var.

Sonra Adobe Reader yüklemek

- Bu .pdf ilişkiyi alır ve ben listeyi yeniden çalıştırın ve ben

Sonra bir karşılaştırma çalıştırabilirsiniz .pdf üzerinde okuyucu ile artık bir liste var ve çıkış farkları ve çıkış Bu yeni bir biçim (listview/textfile) içine

Normalde bir kod örneği vermekteydim ama tüm dürüstlükte nereden başlayacağımı bir ipucu yok - etrafa baktım ve temel olarak bir fta eklemeyi nasıl bulabilirim istediğim bu değil.

Alkış

+0

bu kontrol edin: http://stackoverflow.com/questions/6609640/how-to-create-c-sharp-list-of-all-file-associationsfriendly-application-names, http://stackoverflow.com/sorular/770023/how-do-i-dosya tipi-bilgi-tabanlı olsun-on-genişleme-not-mim-in-c-keskin? lq = 1 –

cevap

1

bu Kod Projesi makaleye göz atın: System File Association

yazar makinede kayıtlı tüm uzantıları içeren listeyi alır: Sonra

var allExtensions = new List<string>(); 
RegistryKey root = Registry.ClassesRoot; 

string[] subKeys = root.GetSubKeyNames(); 
foreach (string subKey in subKeys) // now it's better to use Linq 
{ 
    if (subKey.StartsWith(".")) 
    { 
     allExtensions.Add(subKey); 
    } 
} 

Ve ilişkili alır PROGID:

FileAssociationInfo fa = new FileAssociationInfo(extension); 
var progId = fa.ProgID; // .pdf progId is "SumatraPDF" (on my machine) 

yardımcı olur Umut.

+0

bağlantı sadece cevaplar vermek etmeyin. Bunlar bayat olabilir. Bir yorum olarak bu gönderebilir ya Haklısın @DanielHilgarth Cevabınız –

+0

önemli kısımlarını tekrar edilmelidir. Bunu bir yorum olarak yayınlamak daha iyidir. Ama yeterince itibar yok :( – Romario

+0

Ben, doğru cevap olarak işaretlemek Will! Yavaş cevap için özür ben çok meşguldüm bu koddan çalışma şey aldık gibi görünüyor çok teşekkür ederim! – badatseesharp

İlgili konular