You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
227 lines
7.5 KiB
227 lines
7.5 KiB
using AKS.EnterpriseLibrary.WebBrowser; |
|
using AKSWebBrowser.Commen; |
|
using CPF.Controls; |
|
using System; |
|
using System.Drawing; |
|
using System.Globalization; |
|
using System.IO; |
|
using System.Threading.Tasks; |
|
|
|
namespace AksWebBrowser.Common |
|
{ |
|
public class Utils |
|
{ |
|
/// <summary> |
|
/// 消息弹框 |
|
/// </summary> |
|
/// <param name="mes"></param> |
|
public static void MessagesBox(string mes) |
|
{ |
|
MessageBox.ShowSync(mes); |
|
} |
|
|
|
/// <summary> |
|
/// base64转文件 |
|
/// </summary> |
|
/// <param name="base64String"></param> |
|
/// <param name="filePath"></param> |
|
public static void Base64StringToFile(string base64String, string filePath) |
|
{ |
|
// 将base64字符串转换为字节数组 |
|
byte[] wavBytes = Convert.FromBase64String(base64String); |
|
|
|
// 将字节数组写入到wav文件 |
|
using (FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write)) |
|
{ |
|
fileStream.Write(wavBytes, 0, wavBytes.Length); |
|
fileStream.Flush(); |
|
fileStream.Close(); |
|
} |
|
} |
|
|
|
//删除目录下文件 |
|
public static void DeleteAllFiles(string folderPath) |
|
{ |
|
// 确保文件夹路径是完整的,并且文件夹存在 |
|
if (!Directory.Exists(folderPath)) |
|
{ |
|
//Log.Error("未找到删除临时目录"); |
|
} |
|
|
|
// 获取文件夹内所有文件,包括子文件夹内的文件 |
|
string[] files = Directory.GetFiles(folderPath, "*.*", SearchOption.AllDirectories); |
|
|
|
// 删除所有文件 |
|
foreach (string file in files) |
|
{ |
|
if (!file.Contains("SignFile")) |
|
{ |
|
File.Delete(file); |
|
} |
|
} |
|
} |
|
|
|
/// <summary> |
|
/// 获取运行路径 |
|
/// </summary> |
|
/// <returns></returns> |
|
public static string getSystemPaht() |
|
{ |
|
string dirpath = AppDomain.CurrentDomain.BaseDirectory; |
|
string[] array = dirpath.Split("/"); |
|
int o = 0; |
|
foreach (string file in array) |
|
{ |
|
if (file.Contains("aks")) |
|
{ |
|
o = o + 1; |
|
} |
|
} |
|
if (o == 0) |
|
{ |
|
dirpath = dirpath + "/aks/aks"; |
|
} |
|
else if (o == 1) |
|
{ |
|
dirpath = dirpath + "/aks"; |
|
} |
|
return dirpath; |
|
} |
|
|
|
/// <summary> |
|
/// 获取时间戳:10位,到秒 |
|
/// </summary> |
|
public static string GetTimestamp() |
|
{ |
|
DateTime currentTime = DateTime.Now; |
|
DateTime epochTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); |
|
TimeSpan timeSpan = currentTime.ToUniversalTime() - epochTime; |
|
long timestamp = (long)timeSpan.TotalSeconds; |
|
return timestamp.ToString(); |
|
} |
|
|
|
//图片旋转 |
|
public static string ImagesByRotate(string base64, int rotate) |
|
{ |
|
string time = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); |
|
//生成图片 |
|
string dirpath1 = Utils.getSystemPaht() + @"/wwwroot/TmpFile"; |
|
if (!Directory.Exists(dirpath1)) |
|
{ |
|
Directory.CreateDirectory(dirpath1); |
|
} |
|
var outImgpath = dirpath1 + $"/{time}.jpg"; |
|
var Imgpath = Base64ByImages(base64); |
|
string command = $"convert {Imgpath} -rotate {rotate} {outImgpath}"; |
|
MainModel.ShllCommad(command); |
|
byte[] bytes = File.ReadAllBytes(outImgpath); |
|
string _base64 = Convert.ToBase64String(bytes); |
|
//删除图片 |
|
Task.Run(() => |
|
{ |
|
//File.Delete(Imgpath); |
|
//File.Delete(outImgpath); |
|
}); |
|
return _base64; |
|
} |
|
|
|
//base64转图片 |
|
public static string Base64ByImages(string base64) |
|
{ |
|
string time = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); |
|
//生成文件 |
|
string dirpath = Utils.getSystemPaht() + @"/wwwroot/TmpFile"; |
|
if (!Directory.Exists(dirpath)) |
|
{ |
|
Directory.CreateDirectory(dirpath); |
|
} |
|
var tempFile = dirpath + $"/{time}.txt"; |
|
using (StreamWriter sw = new StreamWriter(tempFile)) |
|
{ |
|
sw.Write(base64); |
|
sw.Close(); |
|
sw.Dispose(); |
|
} |
|
//生成图片 |
|
string dirpath1 = Utils.getSystemPaht() + @"/wwwroot/TmpFile"; |
|
if (!Directory.Exists(dirpath1)) |
|
{ |
|
Directory.CreateDirectory(dirpath1); |
|
} |
|
var Imgpath = dirpath1 + $"/{time}.jpg"; |
|
string command = $"base64 -d {tempFile} > {Imgpath}"; |
|
MainModel.ShllCommad(command); |
|
//删除图片 |
|
Task.Run(() => |
|
{ |
|
File.Delete(tempFile); |
|
}); |
|
return Imgpath; |
|
} |
|
|
|
//base64转图片 |
|
public static string Base64ByImagesPath(string base64, string filename) |
|
{ |
|
//生成文件 |
|
string dirpath = Utils.getSystemPaht() + @"/wwwroot/TmpFile"; |
|
if (!Directory.Exists(dirpath)) |
|
{ |
|
Directory.CreateDirectory(dirpath); |
|
} |
|
var tempFile = dirpath + $"/{filename}.txt"; |
|
using (StreamWriter sw = new StreamWriter(tempFile)) |
|
{ |
|
sw.Write(base64); |
|
sw.Close(); |
|
sw.Dispose(); |
|
} |
|
//生成图片 |
|
string dirpath1 = Utils.getSystemPaht() + @"/wwwroot/TmpFile"; |
|
if (!Directory.Exists(dirpath1)) |
|
{ |
|
Directory.CreateDirectory(dirpath1); |
|
} |
|
var Imgpath = dirpath1 + $"/{filename}.jpg"; |
|
string command = $"base64 -d {tempFile} > {Imgpath}"; |
|
MainModel.ShllCommad(command); |
|
//删除图片 |
|
Task.Run(() => |
|
{ |
|
File.Delete(tempFile); |
|
}); |
|
return Imgpath; |
|
} |
|
|
|
/// <summary> |
|
/// 文字分段 |
|
/// </summary> |
|
/// <param name="text"></param> |
|
/// <param name="segmentLength"></param> |
|
/// <returns></returns> |
|
public static string[] SplitTextIntoSegments(string text, int segmentLength) |
|
{ |
|
int segmentsCount = (int)Math.Ceiling((double)text.Length / segmentLength); |
|
string[] segments = new string[segmentsCount]; |
|
for (int i = 0; i < segmentsCount; i++) |
|
{ |
|
int startIndex = i * segmentLength; |
|
int length = Math.Min(segmentLength, text.Length - startIndex); |
|
segments[i] = text.Substring(startIndex, length); |
|
} |
|
return segments; |
|
} |
|
|
|
/// <summary> |
|
/// 两个数有余数加1 |
|
/// </summary> |
|
/// <param name="number1"></param> |
|
/// <param name="number2"></param> |
|
/// <returns></returns> |
|
public static int AddOneIfRemainder(int number1, int number2) |
|
{ |
|
decimal num = (decimal)number1 / number2; |
|
decimal fraction = num - Math.Floor(num); |
|
return Convert.ToInt32(num + (fraction > 0 ? 1 : 0)); |
|
} |
|
} |
|
}
|
|
|