ACAT.Lib.Core.Utility.FileUtils.GetFileAssociationForExtension C# (CSharp) Метод

GetFileAssociationForExtension() публичный статический Метод

Returns the path to the executable that is associated with the file extension
public static GetFileAssociationForExtension ( string extension ) : string
extension string file extension
Результат string
        public static string GetFileAssociationForExtension(string extension)
        {
            uint capacity = 0;
            var emptyString = String.Empty;
            const uint errorCodeNoAssociation = 0x80070483;
            const uint verify = 0x40;
            const uint exeName = 2;

            extension = extension.Trim();
            if (String.IsNullOrEmpty(extension))
            {
                return emptyString;
            }

            if (extension[0] != '.')
            {
                extension = "." + extension;
            }

            var ret1 = AssocQueryString(verify, exeName, extension, null, null, ref capacity);

            var sb = new StringBuilder((int)capacity);
            var ret2 = AssocQueryString(verify, exeName, extension, null, sb, ref capacity);

            if (ret1 == errorCodeNoAssociation || ret2 == errorCodeNoAssociation)
            {
                return emptyString;
            }

            try
            {
                var file = Path.GetFileName(sb.ToString());
                if (String.Compare(file, "shell32.dll", true) == 0)
                {
                    return emptyString;
                }
            }
            catch (Exception)
            {
                return emptyString;
            }

            return sb.ToString();
        }