/// <summary>Processes a file size by converting it to the appropriate prefix.</summary>
            /// <param name="bytes">The file size in bytes.</param>
            /// <param name="byteMultiple">The multiple of bytes.</param>
            /// <returns>The converted and formatted file size.</returns>
            public static string Process(long bytes, ByteMultiple byteMultiple)
            {
                decimal roundingBytes = bytes;

                int multiple = 0;

                switch (byteMultiple)
                {
                case ByteMultiple.Binary:
                    multiple = 1024;

                    break;

                case ByteMultiple.Decimal:
                    multiple = 1000;

                    break;
                }

                int prefixCounter = 0;

                while (Math.Round(roundingBytes / multiple) >= 1)
                {
                    roundingBytes /= multiple;

                    ++prefixCounter;
                }

                roundingBytes = Math.Round(roundingBytes, 0);

                CultureInfo currentCultureInfo = Thread.CurrentThread.CurrentCulture;

                string prefix;

                switch (byteMultiple)
                {
                case ByteMultiple.Binary:
                    if (prefixCounter == 0)
                    {
                        prefix = " B";
                    }
                    else if (prefixCounter == 1)
                    {
                        prefix = " KiB";
                    }
                    else
                    {
                        prefix = " " + Prefixes[prefixCounter] + "iB";
                    }

                    break;

                case ByteMultiple.Decimal:
                    if (prefixCounter == 0)
                    {
                        prefix = " B";
                    }
                    else
                    {
                        prefix = " " + Prefixes[prefixCounter] + "B";
                    }

                    break;

                default:
                    prefix = string.Empty;

                    throw new InvalidEnumArgumentException(byteMultiple.ToString());
                }

                return(roundingBytes.ToString(currentCultureInfo) + prefix);
            }