Example #1
0
        private ICloudDiskAPI GetAvailableBiggestCloudDisk()
        {
            double        max    = 0;
            ICloudDiskAPI result = null;

            foreach (ICloudDiskAPI api in _loadedCloudDiskApi)
            {
                var tmp = api.GetCloudDiskCapacityInfo();
                if (tmp == null)
                {
                    //可用空间为null,如果还没有返回值,那么先赋一个,如果之后有正常的可用空间值,则result会变化.
                    if (result == null)
                    {
                        result = api;
                    }
                    continue;
                }
                //为防止result一直因为不符合条件而是空,则如果result是空,则给它赋一个值,以后有符合条件的值会自然变掉.
                if (result == null)
                {
                    result = api;
                }

                if (tmp.TotalAvailableByte > max)
                {
                    max    = tmp.TotalAvailableByte;
                    result = api;
                }
            }
            return(result);
        }
Example #2
0
 /// <summary>
 /// 判断一个网盘是否被正常加载
 /// </summary>
 /// <param name="type"></param>
 /// <returns></returns>
 public bool IsDiskTypeLoaded(CloudDiskType type, out ICloudDiskAPI api)
 {
     api = null;
     foreach (ICloudDiskAPI one in _loadedCloudDiskApi)
     {
         if (one.GetDiskType() == type)
         {
             api = one;
             return(true);
         }
     }
     return(false);
 }
Example #3
0
 public CloudDiskManager()
 {
     try
     {
         _loadModulesStr = ConfigurationManager.AppSettings["LoadCloudDiskModules"];
         string[] moduels = _loadModulesStr.Split(new char[] { '[', ']' }, StringSplitOptions.RemoveEmptyEntries);
         foreach (string m in moduels)
         {
             ICloudDiskAPI d = _factory.CreateDiskAPI(m);
             if (d != null)
             {
                 _loadedCloudDiskApi.Add(d);
             }
         }
     }
     catch (Exception ex)
     {
         throw new Exception("在创建网盘API对象时出错!" + ex.Message);
     }
 }