public static bool Validate(FtpOperator op, long value, long x, long y) { switch (op) { case FtpOperator.Equals: return(value == x); case FtpOperator.NotEquals: return(value != x); case FtpOperator.LessThan: return(value < x); case FtpOperator.LessThanOrEquals: return(value <= x); case FtpOperator.MoreThan: return(value > x); case FtpOperator.MoreThanOrEquals: return(value >= x); case FtpOperator.BetweenRange: return(value >= x && value <= y); case FtpOperator.OutsideRange: return(value < x || value > y); } return(false); }
/// <summary> /// 上传文件夹(服务器存在则忽略上传) /// </summary> /// <param name="localDir">本地文件夹</param> /// <param name="dir">服务器路径</param> /// <param name="rule">上传规则</param> /// <returns></returns> public List <string> UploadDirectory(string localDir, string dir, UploadRule rule = null) { List <string> lst = new List <string>(); List <FtpResult> result = null; var lstrules = new List <FtpRule>(); if (rule != null) { if (rule.FtpFileExtension != null && rule.FtpFileExtension.Length > 0) { lstrules.Add(new FtpFileExtensionRule(!rule.IsExclude, rule.FtpFileExtension)); } if (rule.FileSize > 0) { FtpOperator ftpOperator = rule.IsLessThan ? FtpOperator.LessThan : FtpOperator.MoreThan; lstrules.Add(new FtpSizeRule(ftpOperator, rule.FileSize)); } } lstrules.Add(new FtpFolderNameRule(false, FtpFolderNameRule.CommonBlacklistedFolders)); result = ftp.UploadDirectory(localDir, dir, FtpFolderSyncMode.Update, FtpRemoteExists.Skip, FtpVerify.None, lstrules, this.ReturnProgress); foreach (var p in result) { if (p.IsSuccess) { lst.Add(p.LocalPath); } } return(lst); }
/// <summary> /// Only accept files that are of the given size, or within the given range of sizes. /// </summary> /// <param name="ruleOperator">Which operator to use</param> /// <param name="x">The first value, required for all operators</param> /// <param name="y">The second value, only required for BetweenRange and OutsideRange operators.</param> public FtpSizeRule(FtpOperator ruleOperator, long x, long y = 0) { this.Operator = ruleOperator; this.X = x; this.Y = y; }