public FolderInfoModel RenameFolder(FolderInfoModel folder, string newFolderName) { var dir = GetFolderInfo(folder); var newFullPath = GetFullPath(GetOriginalPath(newFolderName, folder.DocumentType, folder.DocumentId)); try { if (string.Equals(dir.FullName, newFullPath, StringComparison.CurrentCultureIgnoreCase)) { var newTempFullPath = GetFullPath(GetOriginalPath(GetTempName(dir.Name), folder.DocumentType, folder.DocumentId)); dir.MoveTo(newTempFullPath); } dir.CreationTimeUtc = DateTime.UtcNow; dir.MoveTo(newFullPath); folder.FolderName = dir.Name; folder.CreatedDate = dir.CreationTime; } catch (Exception ex) { folder = null; throw ex; } return(folder); }
public void GetOriginalPath(FolderInfoModel folderInfo) { if (folderInfo != null) { folderInfo.Path = GetOriginalPath(folderInfo.Path, folderInfo.DocumentType, folderInfo.DocumentId); } }
public bool DeleteFolder(FolderInfoModel folder) { if (folder != null) { GetOriginalPath(folder); return(DeleteFolder(folder.Path)); } return(false); }
public FolderInfoModel CreateFolder(FolderInfoModel folder) { GetOriginalPath(folder); var path = GetFullPath(folder.Path); CreateFolderIfNotExist(path); return(folder); }
public FolderInfoModel CopyFolder(FolderInfoModel sourceFolder, FolderInfoModel destinationFolder) { DirectoryInfo newFolderInfo = null; try { var sourceFolderInfo = GetFolderInfo(sourceFolder); var destinationfolderInfo = GetFolderInfo(destinationFolder); if (destinationFolder.DocumentType != sourceFolder.DocumentType && !destinationfolderInfo.Exists) { destinationfolderInfo.Create(); destinationfolderInfo.Refresh(); } if (sourceFolderInfo != null && destinationfolderInfo != null && sourceFolderInfo.Exists && destinationfolderInfo.Exists) { var newFolderPath = Path.Combine(destinationfolderInfo.FullName, sourceFolderInfo.Name); CreateFolderIfNotExist(newFolderPath); newFolderInfo = GetFolderInfo(newFolderPath); var arrDir = sourceFolderInfo.GetDirectories(); foreach (var dir in arrDir) { //using loop to copy files in all sub-folder CopyFolder(new FolderInfoModel { Path = dir.FullName }, new FolderInfoModel { Path = newFolderInfo.FullName }); } var lstFileCopy = sourceFolderInfo.GetFiles(); foreach (var fileInfo in lstFileCopy) { var fileName = ProcessFileNameInFolder(newFolderInfo, fileInfo.Name); fileInfo.CopyTo(Path.Combine(newFolderInfo.FullName, fileName)); } } } catch (Exception ex) { if (newFolderInfo != null && newFolderInfo.Exists) { newFolderInfo.Delete(); } throw ex; } return(sourceFolder); }
public DirectoryInfo GetFolderInfo(FolderInfoModel folder) { if (folder != null) { GetOriginalPath(folder); var folderInfo = GetFolderInfo(folder.Path); if (string.IsNullOrWhiteSpace(folder.FolderName)) { folder.FolderName = folderInfo.Name; } return(folderInfo); } return(null); }
public IEnumerable <FolderInfoModel> GetSubFolders(FolderInfoModel folder) { if (folder != null) { var dirInfo = GetFolderInfo(folder); CreateFolderIfNotExist(dirInfo.FullName); var path = folder.Path.TrimStart('/') + "/"; var subFolders = dirInfo.GetDirectories(); return(subFolders.Select(x => new FolderInfoModel { FolderName = x.Name, Path = path + x.Name, CreatedDate = x.CreationTimeUtc, DocumentType = folder.DocumentType, DocumentId = folder.DocumentId })); } return(null); }
public IEnumerable <FileInfoModel> GetFiles(FolderInfoModel folder) { if (folder != null) { var dirInfo = GetFolderInfo(folder); var path = folder.Path.TrimStart('/') + "/"; var subFolders = dirInfo.GetFiles(); return(subFolders.Select(x => new FileInfoModel { FileName = x.Name, FullName = Path.Combine(AppSettings.DefaultFolderUpload, folder.Path, x.Name), Size = x.Length, Path = path + x.Name, CreatedDate = x.LastWriteTimeUtc != new DateTime() ? x.LastWriteTimeUtc : x.CreationTimeUtc, UpdatedDate = x.LastWriteTimeUtc, DocumentType = folder.DocumentType, DocumentId = folder.DocumentId })); } return(null); }
public FileInfoModel MoveFile(FileInfoModel file, FolderInfoModel destinationFolder) { var newFile = new FileInfoModel(); try { var fileInfo = GetFileInfo(file); var folderInfo = GetFolderInfo(destinationFolder); if (destinationFolder.DocumentType != file.DocumentType && !folderInfo.Exists) { folderInfo.Create(); folderInfo.Refresh(); } if (fileInfo != null && folderInfo != null && fileInfo.Exists && folderInfo.Exists) { var fileName = ProcessFileNameInFolder(folderInfo, fileInfo.Name); file.FileName = fileName; fileInfo.CreationTimeUtc = DateTime.UtcNow; fileInfo.MoveTo(Path.Combine(folderInfo.FullName, fileName)); newFile = new FileInfoModel { FileName = fileInfo.Name, Path = fileInfo.FullName, DocumentType = destinationFolder.DocumentType, DocumentId = destinationFolder.DocumentId, Size = fileInfo.Length, Extension = fileInfo.Extension, CreatedDate = DateTime.UtcNow, UpdatedDate = DateTime.UtcNow }; } } catch { } return(newFile); }