2023-07-29 23:37:10 +05:30

122 lines
3.0 KiB
C#

using System;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Server.Helper;
public static class Methods
{
private const string Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
public static Random Random = new Random();
private const int LVM_FIRST = 4096;
private const int LVM_SETITEMSTATE = 4139;
private const int WM_VSCROLL = 277;
private static readonly IntPtr SB_PAGEBOTTOM = new IntPtr(7);
public static void RecursiveDelete(string path)
{
DirectoryInfo directoryInfo = new DirectoryInfo(path);
if (!directoryInfo.Exists)
{
return;
}
DirectoryInfo[] directories = directoryInfo.GetDirectories();
for (int i = 0; i < directories.Length; i++)
{
RecursiveDelete(directories[i].FullName);
}
try
{
directoryInfo.Delete(recursive: true);
}
catch
{
}
}
public static void Log(string msg)
{
try
{
File.AppendAllText("C:\\Temp\\server.log", DateTime.Now.ToString() + " : " + msg + "\n");
}
catch (Exception)
{
}
}
public static void LogEx(Exception ex)
{
try
{
File.AppendAllText("C:\\Temp\\server_ex.log", DateTime.Now.ToString() + " : ex " + ex.Message + " \n" + ex.StackTrace + "\n " + ex.Source + "\n");
}
catch (Exception)
{
}
}
public static string BytesToString(long byteCount)
{
string[] array = new string[7] { "B", "KB", "MB", "GB", "TB", "PB", "EB" };
if (byteCount == 0L)
{
return "0" + array[0];
}
long num = Math.Abs(byteCount);
int num2 = Convert.ToInt32(Math.Floor(Math.Log(num, 1024.0)));
double num3 = Math.Round((double)num / Math.Pow(1024.0, num2), 1);
return (double)Math.Sign(byteCount) * num3 + array[num2];
}
public static async Task FadeIn(Form o, int interval = 80)
{
while (o.Opacity < 1.0)
{
await Task.Delay(interval);
o.Opacity += 0.05;
}
}
public static double DiffSeconds(DateTime startTime, DateTime endTime)
{
return Math.Abs(new TimeSpan(endTime.Ticks - startTime.Ticks).TotalSeconds);
}
public static string GetRandomString(int length)
{
StringBuilder stringBuilder = new StringBuilder(length);
for (int i = 0; i < length; i++)
{
stringBuilder.Append("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"[Random.Next("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".Length)]);
}
return stringBuilder.ToString();
}
public static int MakeWin32Long(short wLow, short wHigh)
{
return (wLow << 16) | wHigh;
}
public static void SetItemState(IntPtr handle, int itemIndex, int mask, int value)
{
NativeMethods.LVITEM lVITEM = default(NativeMethods.LVITEM);
lVITEM.stateMask = mask;
lVITEM.state = value;
NativeMethods.LVITEM lParam = lVITEM;
NativeMethods.SendMessageListViewItem(handle, 4139u, new IntPtr(itemIndex), ref lParam);
}
public static void ScrollToBottom(IntPtr handle)
{
NativeMethods.SendMessage(handle, 277u, SB_PAGEBOTTOM, IntPtr.Zero);
}
}