Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
 /// <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;
 }