Расширение Multidot для SaveFileDialog в C #? - PullRequest
2 голосов
/ 03 августа 2010

В основном я пытаюсь установить фильтр SaveFileDialog, например, скажем ... "XML-документ ( .asdf.xml) | .asdf.xml". Он будет правильно фильтровать файлы при выборе файла, но при сохранении файла он будет сохранен только как «.xml». Это даже поддерживается?

Я также не могу придумать подходящий обходной путь, так как большинство обходных путей, похоже, связано с необходимостью ручного изменения имени файла без уведомления пользователя.

Ответы [ 3 ]

4 голосов
/ 03 августа 2010

SupportMultiDottedExtensions = true;

1 голос
/ 03 августа 2010

Я попытался создать форму быстрого выигрыша с помощью SaveFileDialog, и мне удалось без проблем получить файл для сохранения с многоточечным расширением.Я использую VS2010 и C #.Вот мой код для обработчика события нажатия кнопки:

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();
}

Сработал ли мой фильтр *.asdf.xml или .asdf.xml.

Чем ваш код отличается?Если это то же самое, вы создаете новый файл или перезаписываете существующий?Я не уверен, что было бы иначе, если бы не видел ваш код.

РЕДАКТИРОВАТЬ / ОБНОВИТЬ: только что увидел ответ sgrassie о настройке SupportMultiDottedExtension.Я не установил его, так что, возможно, он по умолчанию установлен в C # /. NET 4.

HTH!

1 голос
/ 03 августа 2010

Вы пробовали это?

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