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); }
/// <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); }
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); } }