------ #### SuperDesign V3.0.2412.2001 - *.[新增]新增程序更新日志设置和自动发布功能。 - *.[修复]修复Post数据格式不正确时双击文本框会导致软件闪退的BUG。
134 lines
4.0 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|