拆分代码10

This commit is contained in:
2026-02-04 22:09:01 +08:00
parent 2c36c08ca0
commit 147e2d6881
9 changed files with 124 additions and 52 deletions

View File

@@ -29,20 +29,20 @@ namespace CMLeonOS.Commands.FileSystem
string sourcePath = fileSystem.GetFullPath(sourceFile); string sourcePath = fileSystem.GetFullPath(sourceFile);
string destPath = fileSystem.GetFullPath(newName); string destPath = fileSystem.GetFullPath(newName);
if (!System.IO.File.Exists(sourcePath)) if (!global::System.IO.File.Exists(sourcePath))
{ {
showError($"Source file '{sourceFile}' does not exist"); showError($"Source file '{sourceFile}' does not exist");
return; return;
} }
if (System.IO.File.Exists(destPath)) if (global::System.IO.File.Exists(destPath))
{ {
showError($"Destination '{newName}' already exists"); showError($"Destination '{newName}' already exists");
return; return;
} }
string content = fileSystem.ReadFile(sourcePath); string content = fileSystem.ReadFile(sourcePath);
System.IO.File.WriteAllText(destPath, content); global::System.IO.File.WriteAllText(destPath, content);
fileSystem.DeleteFile(sourcePath); fileSystem.DeleteFile(sourcePath);
showSuccess($"File renamed successfully from '{sourceFile}' to '{newName}'"); showSuccess($"File renamed successfully from '{sourceFile}' to '{newName}'");

View File

@@ -9,7 +9,7 @@ namespace CMLeonOS.Commands.FileSystem
string startPath = string.IsNullOrEmpty(args) ? "." : args; string startPath = string.IsNullOrEmpty(args) ? "." : args;
string fullPath = fileSystem.GetFullPath(startPath); string fullPath = fileSystem.GetFullPath(startPath);
if (!System.IO.Directory.Exists(fullPath)) if (!global::System.IO.Directory.Exists(fullPath))
{ {
showError($"Directory not found: {startPath}"); showError($"Directory not found: {startPath}");
return; return;
@@ -43,7 +43,7 @@ namespace CMLeonOS.Commands.FileSystem
string connector = isLastItem ? "+-- " : "|-- "; string connector = isLastItem ? "+-- " : "|-- ";
string newPrefix = prefix + (isLastItem ? " " : "| "); string newPrefix = prefix + (isLastItem ? " " : "| ");
string dirName = System.IO.Path.GetFileName(dir); string dirName = global::System.IO.Path.GetFileName(dir);
Console.WriteLine($"{prefix}{connector}{dirName}/"); Console.WriteLine($"{prefix}{connector}{dirName}/");
PrintDirectoryTree(fileSystem, dir, newPrefix, isLastItem, showError); PrintDirectoryTree(fileSystem, dir, newPrefix, isLastItem, showError);
@@ -55,11 +55,11 @@ namespace CMLeonOS.Commands.FileSystem
bool isLastItem = current == totalItems; bool isLastItem = current == totalItems;
string connector = isLastItem ? "+-- " : "|-- "; string connector = isLastItem ? "+-- " : "|-- ";
string fileName = System.IO.Path.GetFileName(file); string fileName = global::System.IO.Path.GetFileName(file);
Console.WriteLine($"{prefix}{connector}{fileName}"); Console.WriteLine($"{prefix}{connector}{fileName}");
} }
} }
catch (System.IO.DirectoryNotFoundException) catch (global::System.IO.DirectoryNotFoundException)
{ {
showError($"Directory not found: {path}"); showError($"Directory not found: {path}");
} }

View File

@@ -0,0 +1,12 @@
using System;
namespace CMLeonOS.Commands.System
{
public static class ClearCommand
{
public static void ProcessClear()
{
Console.Clear();
}
}
}

View File

@@ -0,0 +1,12 @@
using System;
namespace CMLeonOS.Commands.System
{
public static class DateCommand
{
public static void ProcessDate()
{
Console.WriteLine(DateTime.Now.ToShortDateString());
}
}
}

View File

@@ -0,0 +1,13 @@
using System;
namespace CMLeonOS.Commands.System
{
public static class EchoCommand
{
public static void ProcessEcho(string args)
{
var processedArgs = args.Replace("\\n", "\n");
Console.WriteLine(processedArgs);
}
}
}

View File

@@ -0,0 +1,12 @@
using System;
namespace CMLeonOS.Commands.System
{
public static class TimeCommand
{
public static void ProcessTime()
{
Console.WriteLine(DateTime.Now.ToString());
}
}
}

View File

@@ -0,0 +1,45 @@
using System;
namespace CMLeonOS.Commands.System
{
public static class UptimeCommand
{
public static void ShowUptime(Action<string> showError, Action<string> showWarning)
{
try
{
Console.WriteLine("====================================");
Console.WriteLine(" System Uptime");
Console.WriteLine("====================================");
Console.WriteLine();
if (Kernel.SystemStartTime != DateTime.MinValue)
{
TimeSpan uptime = DateTime.Now - Kernel.SystemStartTime;
Console.WriteLine("System started: " + Kernel.SystemStartTime.ToString("yyyy-MM-dd HH:mm:ss"));
Console.WriteLine("Current time: " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
Console.WriteLine();
int days = uptime.Days;
int hours = uptime.Hours;
int minutes = uptime.Minutes;
int seconds = uptime.Seconds;
Console.WriteLine($"System uptime: {days} days, {hours} hours, {minutes} minutes, {seconds} seconds");
Console.WriteLine($"Total uptime: {uptime.TotalHours:F2} hours");
}
else
{
showWarning("System start time not available.");
showWarning("System may have been started before uptime tracking was implemented.");
}
Console.WriteLine();
}
catch (Exception ex)
{
showError($"Error showing uptime: {ex.Message}");
}
}
}
}

View File

@@ -0,0 +1,17 @@
using System;
namespace CMLeonOS.Commands.System
{
public static class WhoamiCommand
{
public static void ShowCurrentUsername(CMLeonOS.UserSystem userSystem)
{
Console.WriteLine("====================================");
Console.WriteLine(" Current User");
Console.WriteLine("====================================");
Console.WriteLine();
Console.WriteLine($"Username: {userSystem.CurrentUsername}");
Console.WriteLine();
}
}
}

View File

@@ -115,13 +115,12 @@ namespace CMLeonOS
public void ProcessEcho(string args) public void ProcessEcho(string args)
{ {
var processedArgs = args.Replace("\\n", "\n"); Commands.System.EchoCommand.ProcessEcho(args);
Console.WriteLine(processedArgs);
} }
public void ProcessClear() public void ProcessClear()
{ {
Console.Clear(); Commands.System.ClearCommand.ProcessClear();
} }
public void ProcessRestart() public void ProcessRestart()
@@ -141,12 +140,12 @@ namespace CMLeonOS
public void ProcessTime() public void ProcessTime()
{ {
Console.WriteLine(DateTime.Now.ToString()); Commands.System.TimeCommand.ProcessTime();
} }
public void ProcessDate() public void ProcessDate()
{ {
Console.WriteLine(DateTime.Now.ToShortDateString()); Commands.System.DateCommand.ProcessDate();
} }
public void ProcessLs(string args) public void ProcessLs(string args)
@@ -715,40 +714,7 @@ namespace CMLeonOS
public void ShowUptime() public void ShowUptime()
{ {
try Commands.System.UptimeCommand.ShowUptime(ShowError, ShowWarning);
{
Console.WriteLine("====================================");
Console.WriteLine(" System Uptime");
Console.WriteLine("====================================");
Console.WriteLine();
if (Kernel.SystemStartTime != DateTime.MinValue)
{
TimeSpan uptime = DateTime.Now - Kernel.SystemStartTime;
Console.WriteLine("System started: " + Kernel.SystemStartTime.ToString("yyyy-MM-dd HH:mm:ss"));
Console.WriteLine("Current time: " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
Console.WriteLine();
int days = uptime.Days;
int hours = uptime.Hours;
int minutes = uptime.Minutes;
int seconds = uptime.Seconds;
Console.WriteLine($"System uptime: {days} days, {hours} hours, {minutes} minutes, {seconds} seconds");
Console.WriteLine($"Total uptime: {uptime.TotalHours:F2} hours");
}
else
{
ShowWarning("System start time not available.");
ShowWarning("System may have been started before uptime tracking was implemented.");
}
Console.WriteLine();
}
catch (Exception ex)
{
ShowError($"Error showing uptime: {ex.Message}");
}
} }
public void CreateFTP() public void CreateFTP()
@@ -1237,12 +1203,7 @@ namespace CMLeonOS
public void ShowCurrentUsername() public void ShowCurrentUsername()
{ {
Console.WriteLine("===================================="); Commands.System.WhoamiCommand.ShowCurrentUsername(userSystem);
Console.WriteLine(" Current User");
Console.WriteLine("====================================");
Console.WriteLine();
Console.WriteLine($"Username: {userSystem.CurrentUsername}");
Console.WriteLine();
} }
public void ProcessBase64Command(string args) public void ProcessBase64Command(string args)