public async Task RescanDirectoriesLoadFiles(Guid?parentFolderDirectoryFileID, string path, FolderDirectory folderDir) { var physicalDirectories = Directory.GetDirectories(path); foreach (var directory in physicalDirectories) { DirectoryInfo info = new DirectoryInfo(directory); var dirFile = new FolderDirectoryFile() { FileExtention = "", FileName = info.Name, FolderDirectoryFileID = Guid.NewGuid(), FolderDirectoryID = folderDir.FolderDirectoryID, FullPath = info.FullName, CreatedDate = info.CreationTime, IsDirectory = true, ParentFolderDirectoryFileID = parentFolderDirectoryFileID }; _context.Add(dirFile); await _context.SaveChangesAsync(); await RescanDirectoriesLoadFiles(dirFile.FolderDirectoryFileID, info.FullName, folderDir); } var fileScan = Directory.GetFiles(path, "", SearchOption.TopDirectoryOnly); foreach (var file in fileScan) { FileInfo info = new FileInfo(file); var dirFile = new FolderDirectoryFile() { FileExtention = info.Extension, FileName = info.Name, FolderDirectoryFileID = Guid.NewGuid(), FolderDirectoryID = folderDir.FolderDirectoryID, FullPath = info.FullName, SizeMB = (Convert.ToDouble(info.Length) / 1024.00 / 1024.00).ToString("0.00"), CreatedDate = info.CreationTime, IsDirectory = false, ParentFolderDirectoryFileID = parentFolderDirectoryFileID }; var provider = new FileExtensionContentTypeProvider(); string contentType; if (!provider.TryGetContentType(info.FullName, out contentType)) { contentType = "application/octet-stream"; } dirFile.FileType = contentType; _context.Add(dirFile); await _context.SaveChangesAsync(); } }
internal async Task AddNewFolder(string newFolderName, Guid folderID, Guid?parentFolderDirectoryFileID) { UserHelperFunctions userHelper = new UserHelperFunctions() { _context = _context, _emailService = _emailService, _securityOptions = _securityOptions, _user = _user }; userHelper.Populate(); var folder = _context.FolderUsers.FirstOrDefault(x => x.FolderID == folderID); if (folder != null) { var parentFolder = _context.FolderDirectoryFiles.Include(x => x.FolderDirectory).FirstOrDefault(x => x.FolderDirectoryFileID == parentFolderDirectoryFileID); if (parentFolder != null) { var dirFile = new FolderDirectoryFile() { FileExtention = "", FileName = newFolderName, FolderDirectoryFileID = Guid.NewGuid(), FolderDirectoryID = parentFolder.FolderDirectoryID, FullPath = Path.Combine(parentFolder.FullPath, newFolderName), CreatedDate = DateTime.UtcNow, IsDirectory = true, ParentFolderDirectoryFileID = parentFolderDirectoryFileID }; _context.Add(dirFile); await _context.SaveChangesAsync(); if (Directory.Exists(Path.Combine(parentFolder.FullPath, newFolderName)) == false) { Directory.CreateDirectory(Path.Combine(parentFolder.FullPath, newFolderName)); } } } }