C#摘记二

常用方法

        /// <summary>
        /// 随机数
        /// </summary>
        /// <param name="Length">长度</param>
        /// <returns></returns>
        public static string GenerateRandomNumber(int Length)
        {
            StringBuilder newRandom = new(Length);
            Random random = new();
            for (int i = 0; i < Length; i++)
            {
                newRandom.Append(Constants.NUMBERS[random.Next(10)]);
            }
            return newRandom.ToString();
        }

        ///<summary>
        /// 随机字符串 
        ///</summary>
        /// <param name="length">长度</param>
        ///<returns></returns>
        public static string GetRandomString(int length)
        {
            byte[] b = new byte[32];
            RandomNumberGenerator.Create().GetBytes(b);
            Random random = new(BitConverter.ToInt32(b, 0));
            string str = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
            string returnStr = string.Empty;
            for (int i = 0; i < length; i++)
            {
                returnStr += str.Substring(random.Next(0, str.Length - 1), 1);
            }
            return returnStr;
        }

        /// <summary>
        /// SHA256转换
        /// </summary>
        /// <param name="str">字符串</param>
        /// <returns></returns>
        public static string GenerateSHA256(string str)
        {
            using SHA256 sHA256 = SHA256.Create();
            byte[] buffer = Encoding.UTF8.GetBytes(str);
            byte[] newBuffer = sHA256.ComputeHash(buffer);
            StringBuilder sb = new();
            for (int i = 0; i < newBuffer.Length; i++)
            {
                sb.Append(newBuffer[i].ToString("x2", Constants.CurrentCultureInfo));
            }
            return sb.ToString();
        }

        /// <summary>
        /// 获取时间戳
        /// </summary>
        /// <param name="dateTime"></param>
        /// <returns></returns>
        public static string TimeStamp(DateTime dateTime)
        {
            return ((dateTime.ToUniversalTime().Ticks - 621355968000000000) / 10000000).ToString(Constants.CurrentCultureInfo);
        }

        /// <summary>
        ///  AES 加密
        /// </summary>
        /// <param name="str">明文</param>
        /// <param name="aesKey">密钥</param>
        /// <returns></returns>
        public static string AesEncrypt(string str, string aesKey)
        {
            string data = string.Empty;
            if (!string.IsNullOrEmpty(str) && !string.IsNullOrEmpty(aesKey))
            {
                byte[] toEncryptArray = Encoding.UTF8.GetBytes(str);
                Aes aes = Aes.Create();
                aes.Key = Encoding.UTF8.GetBytes(aesKey);
                byte[] resultArray = aes.EncryptEcb(toEncryptArray, PaddingMode.PKCS7);
                data = Convert.ToBase64String(resultArray, 0, resultArray.Length);
            }
            return data;
        }

        /// <summary>
        ///  AES 解密
        /// </summary>
        /// <param name="str">密文</param>
        /// <param name="aesKey">密钥</param>
        /// <returns></returns>
        public static string AesDecrypt(string str, string aesKey)
        {
            string data = string.Empty;
            if (!string.IsNullOrEmpty(str) && !string.IsNullOrEmpty(aesKey))
            {
                byte[] toEncryptArray = Convert.FromBase64String(str);
                Aes aes = Aes.Create();
                aes.Key = Encoding.UTF8.GetBytes(aesKey);
                byte[] resultArray = aes.DecryptEcb(toEncryptArray, PaddingMode.PKCS7);
                data = Encoding.UTF8.GetString(resultArray);
            }
            return data;
        }

        /// <summary>
        /// 写文件导到磁盘(异步)
        /// </summary>
        /// <param name="stream">数据流</param>
        /// <param name="path">文件路径</param>
        /// <returns></returns>
        public static async Task WriteFileAsync(Stream stream, string path)
        {
            using FileStream fileStream = new(path, FileMode.Create, FileAccess.Write, FileShare.Write);
            await stream.CopyToAsync(fileStream);
            fileStream.Close();
        }

        /// <summary>
        /// 压缩图片
        /// </summary>
        /// <param name="filePath">文件路径</param>
        /// <param name="height">图像高度</param>
        /// <returns></returns>
        public static Image CompressPictures(string filePath, int height)
        {
            Image image = Image.Load(filePath);
            if (height < image.Height)
            {
                image.Mutate(item => item.Resize(0, height));
            }
            return image;
        }

窗体关闭

  private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            try
            {
                if (e.CloseReason == CloseReason.UserClosing)
                {
                    if (MessageBox.Show("您确认退出吗?", "退出确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                    {
                        e.Cancel = true;
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                
            }
        }

根据进程名称关闭

  public static void KillProcess(string Pname)
        {
            foreach (var v in Process.GetProcessesByName(Pname)
            {
                v.Kill();
            }
        }

删除时间范围外log文件

 private static void DeleteOldLogs()
        {
            try
            {
                //  string s =Directory.GetCurrentDirectory();
                var path = Application.StartupPath + "\\ErrLog";
                if (!Directory.Exists(path)) return;
                var files = Directory.GetFiles(path);
                if (files.Length <= 0) return;
                foreach (var file in files)
                {
                    var dt = new FileInfo(file);
                    if ((DateTime.Now.Date - dt.CreationTime.Date).TotalDays > 15)
                        dt.Delete();
                }
            }
            catch (Exception ex)
            {
                LogHelper.Log("DeleteOldLogs", ex.ToString());
            }
        }

posted @ 2022-07-26 20:43  码农阿亮  阅读(34)  评论(0编辑  收藏  举报