如何从保存文件对话框中获取文件扩展名?

Moc*_*cco 11 c#

我希望能够根据在保存文件对话框中输入的扩展名来保存图像.我发现只需输入例如"JPG"就不会导致Save方法使用这种格式.解析扩展,然后使用例如开关和设置正确的格式听起来有点尴尬.或者没有更好的方法?

Dav*_*ras 13

你可以得到SaveDialog.FileName当时用Path.GetExtension()或类似的文件名,你可以获得将用作扩展名的字符串.

您将要做的事情取决于您的具体应用程序设计,如果您要保存文本文件,您也可以将其命名为image1.png,但它仍然是一个文本文件.

如果您在内存中有一个图像对象并希望根据所选扩展名以适当的格式保存,我会使用一个开关/案例并使用Image.Save的正确重载或参数值来处理不同的图像格式.

if(DialogResult.OK == saveDialog.ShowDialog())
{
    var extension = Path.GetExtension(saveDialog.FileName);

    switch(extension.ToLower())
    {
        case ".jpg":
            // ToDo: Save as JPEG
            break;
        case ".png":
            // ToDo: Save as PNG
            break;
        default:
            throw new ArgumentOutOfRangeException(extension);
    }
}
Run Code Online (Sandbox Code Playgroud)