VS_FileSendTool/FS/FileSend/Net/NetHelper.cs

278 lines
7.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System.Text;
using Newtonsoft.Json;
using TouchSocket.Core;
using TouchSocket.Dmtp;
using TouchSocket.Dmtp.FileTransfer;
namespace Net;
public static class NetHelper
{
private static string _iP = "127.0.0.1";
private static int _port = 7789;
private static string _rootPath = "C:\\FileTranslate";
private static string _serverRootPath = "C:\\FileTranslate\\S";
private static string _serverSaveRootPath = $"{_serverRootPath}\\Save";
private static string _clientRootPath = "C:\\FileTranslate\\C";
private static string _clientSaveRootPath = $"{_clientRootPath}\\Save";
private static bool _isConnected;
private static bool _isSaveServerIP;
private static bool _isShowLog;
private static bool _isServer;
private static string _fileFolder = "C:\\FileTranslate\\";
private static string _fileName = $"{_fileFolder}ZNetConfig.txt";
#region 属性
public static string IP
{
get => _iP;
set
{
if (_iP == value || string.IsNullOrEmpty(value))
return;
_iP = value;
UpdateFile();
_data.IP = value;
}
}
public static int Port
{
get => _port;
set
{
if (_port == value)
return;
_port = value;
UpdateFile();
_data.Port = value;
}
}
public static string RootPath
{
get => _rootPath;
set
{
if (_rootPath == value || string.IsNullOrEmpty(value))
return;
string old = _serverRootPath;
_rootPath = value;
Directory.Move(old, value);
_data.RootPath = value;
UpdateFile();
}
}
public static string ServerRootPath
{
get => _serverRootPath;
set
{
if (_serverRootPath == value || string.IsNullOrEmpty(value))
return;
string old = _serverRootPath;
_serverRootPath = value;
Directory.Move(old, value);
_data.ServerRootPath = value;
UpdateFile();
}
}
public static string ServerSaveRootPath
{
get => _serverSaveRootPath;
set
{
if (_serverSaveRootPath == value || string.IsNullOrEmpty(value))
return;
_serverSaveRootPath = value;
Directory.Move(_serverSaveRootPath, value);
_data.ServerSaveRootPath = value;
UpdateFile();
}
}
public static string ClientRootPath
{
get => _clientRootPath;
set
{
if (_clientRootPath == value || string.IsNullOrEmpty(value))
return;
_clientRootPath = value;
Directory.Move(_clientRootPath, value);
_data.ClientRootPath = value;
UpdateFile();
}
}
public static string ClientSaveRootPath
{
get => _clientSaveRootPath;
set
{
if (_clientSaveRootPath == value || string.IsNullOrEmpty(value))
return;
_clientSaveRootPath = value;
Directory.Move(_clientSaveRootPath, value);
_data.ClientSaveRootPath = value;
UpdateFile();
}
}
public static bool IsConnected
{
get => _isConnected;
set
{
if (_isConnected == value)
return;
_isConnected = value;
UpdateFile();
}
}
public static bool IsSaveServerIP
{
get => _isSaveServerIP;
set
{
if (_isSaveServerIP == value)
return;
_isSaveServerIP = value;
_data.IsSaveServerIP = value;
UpdateFile();
}
}
public static bool IsShowLog
{
get => _isShowLog;
set
{
if (_isShowLog == value)
return;
_isShowLog = value;
_data.IsShowLog = value;
UpdateFile();
}
}
public static bool IsServer
{
get => _isServer;
set
{
_isServer = value;
UpdateFile();
}
}
#endregion
public static Server Server = null;
public static Client Client = null;
public static void Init()
{
if (!File.Exists(_fileName))
File.Create(_fileName).Dispose();
DeserializeFile();
if (!Directory.Exists(_rootPath))
Directory.CreateDirectory(_rootPath);
if (!Directory.Exists(_serverRootPath))
Directory.CreateDirectory(_serverRootPath);
if (!Directory.Exists(_serverSaveRootPath))
Directory.CreateDirectory(_serverSaveRootPath);
if (!Directory.Exists(_clientRootPath))
Directory.CreateDirectory(_clientRootPath);
if (!Directory.Exists(_clientSaveRootPath))
Directory.CreateDirectory(_clientSaveRootPath);
}
class Data
{
public string IP;
public int Port;
public string RootPath;
public string ServerRootPath;
public string ServerSaveRootPath;
public string ClientRootPath;
public string ClientSaveRootPath;
public bool IsSaveServerIP;
public bool IsShowLog;
}
private static Data _data;
private static void SerializeFile()
{
var serializeObject = JsonConvert.SerializeObject(_data);
File.WriteAllText(_fileName, serializeObject);
}
private static void DeserializeFile()
{
string json = File.ReadAllText(_fileName);
Data? data = JsonConvert.DeserializeObject<Data>(json);
if (data == null)
{
_data = new Data();
_data.IP = _iP;
_data.Port = _port;
_data.RootPath = _rootPath;
_data.ServerRootPath = _serverRootPath;
_data.ServerSaveRootPath = _serverSaveRootPath;
_data.ClientRootPath = _clientRootPath;
_data.ClientSaveRootPath = _clientSaveRootPath;
_data.IsSaveServerIP = _isSaveServerIP;
_data.IsShowLog = _isShowLog;
UpdateFile();
return;
}
_data = data;
_iP = data.IP;
_port = data.Port;
_rootPath = data.RootPath;
_serverRootPath = data.ServerRootPath;
_serverSaveRootPath = data.ServerSaveRootPath;
_clientRootPath = data.ClientRootPath;
_clientSaveRootPath = data.ClientSaveRootPath;
_isSaveServerIP = data.IsSaveServerIP;
_isShowLog = data.IsShowLog;
}
private static void UpdateFile()
{
SerializeFile();
// StringBuilder sb = new StringBuilder();
// sb.AppendLine($"服务器地址和端口:{_iP}:{_port}");
// sb.AppendLine($"根目录:{_rootPath}");
// sb.AppendLine($"服务器根目录:{_serverRootPath}");
// sb.AppendLine($"服务器保存根目录:{_serverSaveRootPath}");
// sb.AppendLine($"客户端根目录:{_clientRootPath}");
// sb.AppendLine($"客户端保存根目录:{_clientSaveRootPath}");
// sb.AppendLine($"是否保存服务器IP{_isSaveServerIP}");
// sb.AppendLine($"是否显示日志:{_isShowLog}");
}
}