更新搜索引擎系统
This commit is contained in:
parent
ce8d466277
commit
08d175ae36
209
Mod.cs
209
Mod.cs
|
@ -1,209 +0,0 @@
|
|||
|
||||
using Debug;
|
||||
using Microsoft.VisualBasic;
|
||||
using Microsoft.Win32;
|
||||
using System.Runtime.InteropServices;
|
||||
/// <summary>
|
||||
/// 模组搜索引擎操作
|
||||
/// </summary>
|
||||
public class Mod
|
||||
{
|
||||
private static DateTime StartTime;
|
||||
/// <summary>
|
||||
/// 结束时间
|
||||
/// </summary>
|
||||
private static void EndTime()
|
||||
{
|
||||
Console.WriteLine("结束" + (DateTime.Now - StartTime).TotalMilliseconds + "ms");
|
||||
}
|
||||
|
||||
private readonly bool Isdot = true;
|
||||
private readonly List<string> ExcludeFile = [
|
||||
"Android", "androidword", "Java",
|
||||
"Linux", "linuxword", "Mac",
|
||||
"Windows", "Windows 10", "Steam",
|
||||
"Genshin Impact Game", "Godot", "Gradle",
|
||||
"WeGame", "Mental Omega", "WeGameApps",
|
||||
"ramboplayGame", "QQ", "QQWORD","Microsoft SDKs","Creator","editors","AndroidSDK","SDK","Pr","PR","PS","Ps","WE",
|
||||
"androidstudioword","xshell7"
|
||||
];
|
||||
public string FileDir = string.Empty;
|
||||
|
||||
public Mod()
|
||||
{
|
||||
Console.Clear();
|
||||
ModeSwitch.New("搜索模式", ["返回主页", "默认", "steam", "全盘"], MODE);
|
||||
|
||||
//Action<int> action = MODE;
|
||||
}
|
||||
public void MODE(int a)
|
||||
{
|
||||
Console.Clear();
|
||||
if (a == 0)
|
||||
{
|
||||
_ = new Program();
|
||||
return;
|
||||
}
|
||||
// StartTime = DateTime.Now;
|
||||
if (a == 1 || a == 2)
|
||||
{
|
||||
steam();//先看看steam中有没有安装铁锈战争
|
||||
//steam中没有安装铁锈战争扫全盘
|
||||
}
|
||||
if ((a == 1 || a == 3) && FileDir == string.Empty)
|
||||
{
|
||||
init();
|
||||
}
|
||||
Console.Clear();
|
||||
if (!string.IsNullOrEmpty(FileDir))
|
||||
{
|
||||
ModeSwitch.New("找到了:" + FileDir, ["返回主页", "默认", "steam", "全盘"], MODE);
|
||||
}
|
||||
else
|
||||
{
|
||||
ModeSwitch.New("未找到", ["返回主页", "默认", "steam", "全盘"], MODE);
|
||||
}
|
||||
//FileDir=string.Empty;
|
||||
}
|
||||
private void steam()
|
||||
{
|
||||
var steamPath = GetSteamInstallPath();
|
||||
if (!string.IsNullOrEmpty(steamPath))
|
||||
{
|
||||
string v = Path.Combine(steamPath, "steamapps\\common\\Rusted Warfare");
|
||||
// Program.printfLine("找到了:" + v);
|
||||
if (Directory.Exists(v))
|
||||
{
|
||||
FileDir = v;
|
||||
// EndTime();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void init()
|
||||
{
|
||||
var allDrives = DriveInfo.GetDrives();
|
||||
foreach (var d in allDrives)
|
||||
{
|
||||
Console.WriteLine();
|
||||
if (d.IsReady == true)
|
||||
{
|
||||
var name = d.Name;
|
||||
if (ExcludeFile.Contains(name))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (name.Equals("C:\\"))
|
||||
{
|
||||
FileSearch(name);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Directory.Exists(name + "/Rusted Warfare"))
|
||||
{
|
||||
EndTime();
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
FileSearch(name);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsSearch = true;
|
||||
private void FileSearch(string path)
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (var file in Directory.EnumerateDirectories(path))
|
||||
{
|
||||
if (!IsSearch)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var name = Path.GetFileName(file);
|
||||
if (Isdot && name.StartsWith("."))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (ExcludeFile.Contains(name))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (name.Equals("Rusted Warfare"))
|
||||
{
|
||||
FileDir = file;
|
||||
EndTime();
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
FileSearch(file);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
catch (UnauthorizedAccessException)
|
||||
{
|
||||
Console.WriteLine($"Access denied for: {path}");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"Error accessing directory '{path}': {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static string GetSteamInstallPath()
|
||||
{
|
||||
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
{
|
||||
return string.Empty;
|
||||
// Windows 相关逻辑
|
||||
}
|
||||
|
||||
var installPath = GetInstallPathFromKey(@"Software\Valve\Steam");
|
||||
|
||||
if (string.IsNullOrEmpty(installPath))
|
||||
{
|
||||
installPath = GetInstallPathFromKey(@"SOFTWARE\Wow6432Node\Valve\Steam");
|
||||
}
|
||||
|
||||
return installPath;
|
||||
|
||||
string GetInstallPathFromKey(string subKey)
|
||||
{
|
||||
using (var key = Registry.CurrentUser.OpenSubKey(subKey))
|
||||
{
|
||||
if (key != null)
|
||||
{
|
||||
var path = key.GetValue("InstallPath");
|
||||
if (path != null)
|
||||
{
|
||||
return (string)path;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
using (var key = Registry.LocalMachine.OpenSubKey(subKey))
|
||||
{
|
||||
if (key != null)
|
||||
{
|
||||
var path = key.GetValue("InstallPath");
|
||||
if (path != null)
|
||||
{
|
||||
return (string)path;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -57,7 +57,7 @@ public class Program
|
|||
// MinLong.Main.ResetChars();
|
||||
// _ = new MinLong.Main();
|
||||
// return;
|
||||
string[] str = ["退出", "抽卡", "铁锈位置搜索引擎", "音乐调试", "小龙快跑"];
|
||||
string[] str = ["退出", "抽卡", "搜索引擎", "音乐调试", "小龙快跑"];
|
||||
var modeSwitch = new ModeSwitch("请选择你要执行的操作:", str, (a) =>
|
||||
{
|
||||
switch (a)
|
||||
|
|
160
SearchFile.cs
Normal file
160
SearchFile.cs
Normal file
|
@ -0,0 +1,160 @@
|
|||
|
||||
using Debug;
|
||||
/// <summary>
|
||||
/// 文件夹文件搜索引擎操作
|
||||
/// </summary>
|
||||
public class Mod
|
||||
{
|
||||
private static DateTime time;
|
||||
/// <summary>
|
||||
/// 结束时间
|
||||
/// </summary>
|
||||
private static void EndTime()
|
||||
{
|
||||
Console.WriteLine("结束" + (DateTime.Now - time).TotalMilliseconds + "ms");
|
||||
}
|
||||
private static void StartTime()
|
||||
{
|
||||
time = DateTime.Now;
|
||||
}
|
||||
|
||||
private readonly bool Isdot = true;
|
||||
//过滤系统
|
||||
private readonly List<string> ExcludeFile = [
|
||||
"Android", "androidword", "Java",
|
||||
"Linux", "linuxword", "Mac",
|
||||
"Windows", "Windows 10", "Steam",
|
||||
"Genshin Impact Game", "Godot", "Gradle",
|
||||
"WeGame", "Mental Omega", "WeGameApps",
|
||||
"ramboplayGame", "QQ", "QQWORD","Microsoft SDKs","Creator","editors","AndroidSDK","SDK","Pr","PR","PS","Ps","WE",
|
||||
"androidstudioword","xshell7"
|
||||
];
|
||||
private readonly bool isExcludeFile = false;
|
||||
public string FileDir = string.Empty;
|
||||
public Mod()
|
||||
{
|
||||
Console.Clear();
|
||||
ModeSwitch.New("搜索模式", ["返回主页", "文件", "文件夹"], MODE);
|
||||
}
|
||||
public void MODE(int a)
|
||||
{
|
||||
Console.Clear();
|
||||
if (a == 0)
|
||||
{
|
||||
_ = new Program();
|
||||
return;
|
||||
}
|
||||
if (a == 1)
|
||||
{
|
||||
isFile = true;
|
||||
}
|
||||
else if (a == 2)
|
||||
{
|
||||
isFile = false;
|
||||
}
|
||||
Console.Write($"请输入{(isFile ? "文件" : "文件夹")}:");
|
||||
var v = Console.ReadLine();
|
||||
if (v == null || string.IsNullOrEmpty(v))
|
||||
{
|
||||
Console.Write("输入错误");
|
||||
_ = new Program();
|
||||
return;
|
||||
}
|
||||
fileName = v;
|
||||
Console.Clear();
|
||||
|
||||
Init();
|
||||
}
|
||||
private bool isFile = true;//是否搜索的是文件
|
||||
private string fileName = string.Empty;
|
||||
|
||||
|
||||
private void Init()
|
||||
{
|
||||
StartTime();
|
||||
var allDrives = DriveInfo.GetDrives();
|
||||
foreach (var d in allDrives)
|
||||
{
|
||||
Console.WriteLine();
|
||||
if (d.IsReady == true)
|
||||
{
|
||||
var name = d.Name;
|
||||
|
||||
// if (name.Contains("C:\\"))//排除系统盘
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
// Console.WriteLine(name);
|
||||
FileSearch(name);
|
||||
|
||||
}
|
||||
EndTime();
|
||||
Yes();
|
||||
}
|
||||
}
|
||||
private void FileSearch(string path)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Console.WriteLine("正在搜索:" + path);
|
||||
|
||||
DirectoryInfo dirInfo = new(path);
|
||||
foreach (var directory in dirInfo.EnumerateDirectories())
|
||||
{
|
||||
Console.WriteLine("正在搜索:" + directory);
|
||||
//判断是否有访问权限
|
||||
if (!directory.Exists)
|
||||
{
|
||||
Console.WriteLine("没有访问的权限 " + directory);
|
||||
continue;
|
||||
}
|
||||
//获取名称
|
||||
var name = directory.Name;
|
||||
// 是否过滤掉隐藏文件夹
|
||||
if (Isdot && name.StartsWith('.'))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (isExcludeFile && ExcludeFile.Contains(name))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (name.Equals(fileName) && directory.Exists)
|
||||
{
|
||||
FileDir = directory.FullName;
|
||||
return;
|
||||
}
|
||||
FileSearch(directory.FullName);
|
||||
}
|
||||
if (isFile)
|
||||
{
|
||||
foreach (var file in dirInfo.EnumerateFiles())
|
||||
{
|
||||
Console.WriteLine("正在搜索:" + file.FullName);
|
||||
// 处理文件
|
||||
if (file.Name.Equals(fileName) && file.Exists)
|
||||
{
|
||||
FileDir = file.FullName;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"Error accessing directory '{path}': {ex.Message}");
|
||||
}
|
||||
}
|
||||
private void Yes()
|
||||
{
|
||||
if (!string.IsNullOrEmpty(FileDir))
|
||||
{
|
||||
Console.Write($"已经找到{(isFile ? "文件" : "文件夹")} {FileDir}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.Write($"未找到 {(isFile ? "文件" : "文件夹")}");
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user