KeePassLib.Serialization.Kdb4File.SaveBinary C# (CSharp) Метод

SaveBinary() приватный статический Метод

private static SaveBinary ( string strName, ProtectedBinary pb, string strSaveDir ) : void
strName string
pb ProtectedBinary
strSaveDir string
Результат void
        private static void SaveBinary(string strName, ProtectedBinary pb,
            string strSaveDir)
        {
            if(pb == null) { Debug.Assert(false); return; }

            if(string.IsNullOrEmpty(strName)) strName = "File.bin";

            string strPath;
            int iTry = 1;
            do
            {
                strPath = UrlUtil.EnsureTerminatingSeparator(strSaveDir, false);

                string strExt = UrlUtil.GetExtension(strName);
                string strDesc = UrlUtil.StripExtension(strName);

                strPath += strDesc;
                if(iTry > 1) strPath += " (" + iTry.ToString() + ")";

                if(!string.IsNullOrEmpty(strExt)) strPath += "." + strExt;

                ++iTry;
            }
            while(File.Exists(strPath));

            #if !KeePassLibSD
            File.WriteAllBytes(strPath, pb.ReadData());
            #else
            FileStream fs = new FileStream(strPath, FileMode.Create,
                FileAccess.Write, FileShare.None);
            byte[] pbData = pb.ReadData();
            fs.Write(pbData, 0, pbData.Length);
            fs.Close();
            #endif
        }