278 lines
7.2 KiB
C#
278 lines
7.2 KiB
C#
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}");
|
||
}
|
||
} |