MongoUtility.Command.Gfs.UpLoadFile C# (CSharp) Method

UpLoadFile() public static method

上传文件
Mongo允许同名文件,因为id才是主键
public static UpLoadFile ( string strFileName, UpLoadFileOption option, MongoDatabase mongoDb ) : UploadResult
strFileName string
option UpLoadFileOption
mongoDb MongoDatabase
return UploadResult
        public static UploadResult UpLoadFile(string strFileName, UpLoadFileOption option, MongoDatabase mongoDb)
        {
            var gfs = mongoDb.GetGridFS(new MongoGridFSSettings());
            string remoteName;
            if (option.FileNameOpt == EnumGfsFileName.Filename)
            {
                remoteName = new FileInfo(strFileName).Name;
            }
            else
            {
                remoteName = option.DirectorySeparatorChar != Path.DirectorySeparatorChar
                    ? strFileName.Replace(Path.DirectorySeparatorChar, option.DirectorySeparatorChar)
                    : strFileName;
            }
            MongoHelper.OnActionDone(new ActionDoneEventArgs(remoteName + " Uploading "));
            if (!gfs.Exists(remoteName))
            {
                gfs.Upload(strFileName, remoteName);
                return UploadResult.Complete;
            }
            switch (option.AlreadyOpt)
            {
                case EnumGfsAlready.JustAddIt:
                    gfs.Upload(strFileName, remoteName);
                    return UploadResult.Complete;
                case EnumGfsAlready.RenameIt:
                    var extendName = new FileInfo(strFileName).Extension;
                    var mainName = remoteName.Substring(0, remoteName.Length - extendName.Length);
                    var i = 1;
                    while (gfs.Exists(mainName + i + extendName))
                    {
                        i++;
                    }
                    gfs.Upload(strFileName, mainName + i + extendName);
                    return UploadResult.Complete;
                case EnumGfsAlready.SkipIt:
                    return UploadResult.Skip;
                case EnumGfsAlready.OverwriteIt:
                    gfs.Delete(remoteName);
                    gfs.Upload(strFileName, remoteName);
                    return UploadResult.Complete;
                case EnumGfsAlready.Stop:
                    return UploadResult.Skip;
            }
            return UploadResult.Skip;
        }