2010-08-03 3 views
2

Fondamentalement, j'essaye de placer le filtre de SaveFileDialog comme disons à ... "Document Xml (.asdf.xml) | .asdf.xml". Il va filtrer les fichiers correctement lors de la sélection d'un fichier, mais lors de la sauvegarde du fichier, il enregistre uniquement en tant que ". Xml". Est-ce même supporté?Extension Multidot pour SaveFileDialog en C#?

Je ne peux pas non plus imaginer une solution de contournement appropriée car la plupart des solutions de contournement semblent impliquer de devoir modifier manuellement le nom de fichier sans que l'utilisateur ne le sache.

+0

Pouvez-vous poster du code? –

Répondre

4

SupportMultiDottedExtensions = true;

+0

Oh wow, c'était incroyablement stupide de ma part. – dak

1

Avez-vous essayé?

SaveFileDialog sfd = new SaveFileDialog(); 
sfd.Filter = "XML File (*.asdf.xml)|*.asdf.xml|All Files|"; 
sfd.SupportMultiDottedExtensions = true; 
1

Je pris un coup de poignard à créer une forme de victoire rapide en utilisant la SaveFileDialog et j'ai pu obtenir un fichier pour enregistrer avec une extension multi-points sans problème. J'utilise VS2010 et C#. Voici mon code pour un bouton gestionnaire d'événements, cliquez sur:

private void button1_Click(object sender, EventArgs e) 
{ 
    saveFileDialog1.Filter = "Xml Document (.asdf.xml)|*.asdf.xml"; 
    saveFileDialog1.ShowDialog(); 

    System.IO.FileStream fs = saveFileDialog1.OpenFile() as System.IO.FileStream; 

    fs.Write(new byte[] { }, 0, 0); 
    fs.Close(); 
} 

Il a travaillé si mon filtre utilisé *.asdf.xml ou .asdf.xml.

En quoi votre code est-il différent? Si c'est pareil, créez-vous un nouveau fichier ou remplacez-vous un fichier existant? Je ne suis pas sûr quoi d'autre serait différent sans voir votre code.

EDIT/UPDATE: J'ai vu la réponse de sgrassie à propos de la configuration de SupportMultiDottedExtension. Je ne l'ai pas défini, donc peut-être que sa valeur par défaut est true dans C# /. NET 4.

HTH!