/// <summary> /// 复制文件 /// </summary> /// <param name="input"> </param> /// <returns> </returns> public async Task <SysFileListDto> CopyFile(SysFileEditDto input) { var entity = await _sysFileRepository.GetAsync(input.Id.Value); var rootFolder = _appFolder.SysFileRootFolder; var currentFilePath = Path.Combine(rootFolder, entity.Path);//获取旧当前文件的绝对路径 var uniqueFileName = SequentialGuidGenerator.Instance.Create().ToString(); var fileExt = Path.GetExtension(currentFilePath); var newName = uniqueFileName + fileExt; //copy文件后的新名称 entity.Name = newName; var saveRPath = Path.Combine(entity.DateDirctoryName, entity.Name); //将重命名的路径保存到数据库中 var NewFilepath = Path.Combine(rootFolder, saveRPath); //即将复制的路径 saveRPath = saveRPath.Replace("\\", "/"); entity.Path = saveRPath; File.Copy(currentFilePath, NewFilepath); var newEntity = entity; newEntity.Id = SequentialGuidGenerator.Instance.Create(); newEntity = await _sysFileManager.CreateAsync(newEntity); var dto = ObjectMapper.Map <SysFileListDto>(newEntity); return(dto); }
//// custom codes /// <summary> /// 重命名文件 /// </summary> /// <param name="input"> </param> /// <returns> </returns> public async Task ReFileName(SysFileEditDto input) { var entity = await _sysFileRepository.GetAsync(input.Id.Value); var rootFolder = _appFolder.SysFileRootFolder; entity.Name = input.Name;//新文件名 await _sysFileManager.ValidateSysfileAsync(entity); var OldPath = Path.Combine(rootFolder, entity.Path); //获取旧当前文件的绝对路径 var saveRPath = Path.Combine(entity.DateDirctoryName, entity.Name); //将重命名的路径保存到数据库中 var NewPath = Path.Combine(rootFolder, saveRPath); //即将重命名的路径 if (entity.Dir) { //文件夹重命名操作 Directory.Move(OldPath, NewPath); } else { File.Move(OldPath, NewPath);//重命名操作 } saveRPath = saveRPath.Replace("\\", "/"); entity.Path = saveRPath; await _sysFileManager.UpdateAsync(entity); }
public virtual async Task Update(SysFileEditDto input) { //TODO:更新前的逻辑判断,是否允许更新 var entity = await _sysFileRepository.GetAsync(input.Id.Value); ObjectMapper.Map(input, entity); await _sysFileManager.UpdateAsync(entity); }
public async Task <GetSysFileForEditOutput> GetForEdit(NullableIdDto <Guid> input) { var output = new GetSysFileForEditOutput(); SysFileEditDto editDto; if (input.Id.HasValue) { var entity = await _sysFileRepository.GetAsync(input.Id.Value); editDto = ObjectMapper.Map <SysFileEditDto>(entity); } else { editDto = new SysFileEditDto(); } output.SysFile = editDto; return(output); }
/// <summary> /// 创建文件夹 /// </summary> /// <param name="input"> </param> /// <returns> </returns> public async Task <SysFileListDto> CreateDirectory(SysFileEditDto input) { input.Dir = true; var entity = ObjectMapper.Map <SysFile>(input); entity.IsImg = false; var rootFolder = _appFolder.SysFileRootFolder; var dateDirctoryName = DateTime.Now.ToString("yyyy-MM-dd"); //2008-9-4 var savePath = Path.Combine(dateDirctoryName, entity.Name); var dirPath = Path.Combine(rootFolder, savePath); DirectoryHelper.CreateIfNotExists(dirPath); savePath = savePath.Replace("\\", "/"); entity.DateDirctoryName = dateDirctoryName; entity.Path = savePath; entity.FileExt = ".dir"; entity = await _sysFileManager.CreateAsync(entity); var dto = ObjectMapper.Map <SysFileListDto>(entity); return(dto); }