/// <summary> /// 写入文件 /// </summary> /// <param name="fileItem"></param> /// <param name="proxy"></param> /// <returns></returns> public static WriteFileResultItemData WriteFile(WriteFileItemData fileItem, IRemoteFileStorage proxy) { WriteFileResultItemData result = null; ManagerHelper.CheckNullReference(fileItem, "fileItem"); WriteFileParameter param = new WriteFileParameter(); param.InputData.Add(fileItem); WriteFileResult itemResult = WriteFile(param, proxy); if (itemResult.RecordCount > 0) { result = itemResult.ExecuteResult[0]; } return(result); }
internal void Initialize(RemoteStreamContext context) { __Error.CheckNullReference(context, "context"); if (context.FileID == Guid.Empty) { __Error.InvalidateFileID(); } _context = context; _proxy = CreateServiceProxy(context); //Stopwatch w = new Stopwatch(); //w.Start(); _itemResult = FileManager.OpenFile(context, _proxy); //w.Stop(); //Console.WriteLine("Open File execute times:" + w.ElapsedMilliseconds); //_logicFileInfo = FileManager.GetFileInfo(context.FileID, context.Version); if (context.FileMode == FileMode.None) { __Error.InvalidateFileMode(); } FileAccess access = context.FileAccess; if (FileMode.Truncate == context.FileMode) { access = FileAccess.Write; } LogicFileInfoData logicFileInfo = LogicFileInfo; if (logicFileInfo == null) { if (context.FileMode == FileMode.Open || context.FileMode == FileMode.Append || context.FileMode == FileMode.Truncate) { __Error.NotExistsFileID(context.FileID); } } if (logicFileInfo != null) { if (logicFileInfo.ReadOnly && this._canWrite) { __Error.FileReadOnly(context.FileID); } if (context.FileMode == FileMode.CreateNew) { __Error.ExistsFileID(context.FileID); } } this._canRead = (access & FileAccess.Read) != 0; this._canWrite = (access & FileAccess.Write) != 0; PhysicalFileInfoData physicalFileInfo = this.PhysicalFileInfo; if (physicalFileInfo != null) { this._fileLength = physicalFileInfo.FileLength; } if (context.FileMode == FileMode.Append) { _origin = _fileLength; } }
/// <summary> /// 检索文件信息 /// </summary> /// <param name="fetchFileInfoParam"></param> /// <returns></returns> public static FetchFileInfoResult GetFileInfo(FetchFileInfoParameter fetchFileInfoParam, IRemoteFileStorage proxy) { ManagerHelper.CheckNullReference(fetchFileInfoParam, "fetchFileInfo"); if (proxy == null) { proxy = ServiceProxy; } FetchFileInfoResult result = proxy.FetchFileInfo(fetchFileInfoParam); ManagerHelper.CheckFetchResult(result); return(result); }
/// <summary> /// 检索文件信息 /// </summary> /// <param name="logicFileInfo"></param> /// <returns></returns> public static LogicFileInfoData GetFileInfo(LogicFileInfoItemData logicFileInfo, IRemoteFileStorage proxy) { ManagerHelper.CheckNullReference(logicFileInfo, "logicFileInfo"); FetchFileInfoParameter fetchParam = new FetchFileInfoParameter(); fetchParam.InputData.Add(logicFileInfo); FetchFileInfoResult result = GetFileInfo(fetchParam, proxy); if (result.RecordCount > 0) { LogicFileResultItemData item = result.ExecuteResult[0]; if (!item.LogicFileID.Equals(Guid.Empty)) { return(item.LogicFileInfo); } } return(null); }
/// <summary> /// 检索文件信息 /// </summary> /// <param name="logicFileID"></param> /// <returns></returns> public static LogicFileInfoData GetFileInfo(Guid logicFileID, IRemoteFileStorage proxy) { return(GetFileInfo(logicFileID, 0, proxy)); }
/// <summary> /// 判断是否存在对应的文件。 /// </summary> /// <param name="logicFileID"></param> /// <param name="version"></param> /// <returns></returns> public static bool FileExists(Guid logicFileID, int version, IRemoteFileStorage proxy) { LogicFileInfoData logicFileInfo = GetFileInfo(logicFileID, version, proxy); return(logicFileInfo != null); }
/// <summary> /// 判断是否存在对应的文件 /// </summary> /// <param name="logicFileID"></param> /// <returns></returns> public static bool FileExists(Guid logicFileID, IRemoteFileStorage proxy) { return(FileExists(logicFileID, 0, proxy)); }
/// <summary> /// 关闭文件 /// </summary> /// <param name="closeFileItem"></param> /// <param name="proxy"></param> /// <returns></returns> public static CloseFileResultItemData CloseFile(CloseFileItemData closeFileItem, IRemoteFileStorage proxy) { CloseFileResultItemData result = null; ManagerHelper.CheckNullReference(closeFileItem, "closeFileItem"); CloseFileParameter param = new CloseFileParameter(); param.InputData.Add(closeFileItem); CloseFileResult itemResult = CloseFile(param, proxy); if (itemResult.RecordCount > 0) { result = itemResult.ExecuteResult[0]; } return(result); }