SuperDesign/Source/RySmartEditor/FTP/IFTP.cs
zilinsoft 993f1ca1a9 ### 2024-12-20 星期五更新
------
#### SuperDesign    V3.0.2412.2001
- *.[新增]新增程序更新日志设置和自动发布功能。
- *.[修复]修复Post数据格式不正确时双击文本框会导致软件闪退的BUG。
2024-12-20 08:15:19 +08:00

134 lines
4.0 KiB
C#

using GameBackup3H3.DbOp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FTPop
{
public interface IFTP
{
/// <summary>
/// 打开FTP
/// </summary>
/// <param name="ftpinfo"></param>
int Open(FTPInfo ftpinfo);
/// <summary>
/// FTP是否打开着
/// </summary>
/// <param name="ftpinfo"></param>
bool IsOpen { get; }
/// <summary>
/// 关闭FTP。
/// </summary>
/// <returns></returns>
int Close();
/// <summary>
/// 显示文件夹列表
/// </summary>
/// <param name="CurFolder"></param>
/// <returns></returns>
List<RemoteFileInfo> ListDirectory(string CurFolder,out string error);
/// <summary>
/// 上传
/// </summary>
/// <param name="localPath"></param>
/// <param name="remotePath"></param>
/// <returns></returns>
int Upload(string localPath, string remotePath);
/// <summary>
/// 下载
/// </summary>
/// <param name="remotePath"></param>
/// <param name="localPath"></param>
/// <returns></returns>
int Download(string remotePath, string localPath);
/// <summary>
/// 删除文件
/// </summary>
/// <param name="remotePath"></param>
/// <returns></returns>
int DelFile(string remotePath);
/// <summary>
/// 删除文件
/// </summary>
/// <param name="remotePath"></param>
/// <returns></returns>
int RemoveFiles(string remotePath);
/// <summary>
/// 移动文件
/// </summary>
/// <param name="remotePath"></param>
/// <returns></returns>
int MoveFile(string fromPath,string toPath);
/// <summary>
/// 文件是否存在
/// </summary>
/// <param name="remotePath"></param>
/// <returns></returns>
bool FileExists(string remotePath);
/// <summary>
/// 文件大小
/// </summary>
/// <param name="remotePath"></param>
/// <returns></returns>
Int64 FileSize(string remotePath);
/// <summary>
/// 文件最后修改时间
/// </summary>
/// <param name="remotePath"></param>
/// <returns></returns>
DateTime FileLastWriteTime(string remotePath);
/// <summary>
/// 文件信息
/// </summary>
/// <param name="remotePath"></param>
/// <returns></returns>
RemoteFileInfo GetFileInfo(string remotePath);
/// <summary>
/// 文件传输事件
/// </summary>
event FileTransferProgressEventHandler FileTransferProgress;
}
public delegate void FileTransferProgressEventHandler(object sender, FileTransferProgressEventArgs e);
public sealed class FileTransferProgressEventArgs : EventArgs
{
/// <summary>
/// 文件全路径
/// </summary>
public string LocalPath { get; internal set; }
/// <summary>
/// 当前文件进度
/// </summary>
public double FileProgress { get; internal set; }
/// <summary>
/// 当前传输速度
/// </summary>
public double Speed { get; internal set; }
/// <summary>
/// 是否完成
/// </summary>
public bool IsComplete { get; internal set; } = false;
/// <summary>
/// 是否要取消
/// </summary>
public bool Cancel { get; set; }
}
/// <summary>
/// 远程文件信息
/// </summary>
public class RemoteFileInfo
{
public string Name { get; set; }
public string FullName { get; set; }
public long Length { get; set; }
public DateTime LastWriteTime { get; set; } = DateTime.MinValue;
public bool IsDirectory { get; set; }
public override string ToString()
{
return FullName;
}
}
}