Release Notes
v3.2.0 (Initial Release)
February 2026
Initial release of the @abpjs/file-management package, providing file and directory management services for ABP React applications. This is the React equivalent of Angular's @volo/abp.ng.file-management module.
Features
FileDescriptorService
Service for managing files:
import { FileDescriptorService } from '@abpjs/file-management';
import { useRestService } from '@abpjs/core';
const restService = useRestService();
const fileService = new FileDescriptorService(restService);
// Get a file by ID
const file = await fileService.get('file-id');
// List files in a directory
const files = await fileService.getList('directory-id');
// Get file content
const bytes = await fileService.getContent('file-id');
// Create a file
const newFile = await fileService.create({
directoryId: 'parent-dir-id',
name: 'document.pdf',
mimeType: 'application/pdf',
content: byteArray,
});
// Rename a file
await fileService.rename('file-id', { name: 'new-name.pdf' });
// Move a file
await fileService.move({ id: 'file-id', newDirectoryId: 'target-dir-id' });
// Delete a file
await fileService.delete('file-id');
// Pre-upload validation
const preInfo = await fileService.getPreInfo([
{ directoryId: 'dir-id', fileName: 'test.pdf', size: 1024 },
]);
DirectoryDescriptorService
Service for managing directories:
import { DirectoryDescriptorService } from '@abpjs/file-management';
const dirService = new DirectoryDescriptorService(restService);
// Get a directory
const dir = await dirService.get('directory-id');
// List subdirectories (for tree views)
const children = await dirService.getList('parent-id');
// Get directory content (paginated)
const content = await dirService.getContent({
id: 'directory-id',
filter: 'search term',
sorting: 'name asc',
});
// Create a directory
const newDir = await dirService.create({
name: 'Documents',
parentId: null,
});
// Rename a directory
await dirService.rename('dir-id', { name: 'New Name' });
// Move a directory
await dirService.move({ id: 'dir-id', newParentId: 'target-id' });
// Delete a directory
await dirService.delete('dir-id');
Route Providers
Initialize file management routes:
import { initializeFileManagementRoutes } from '@abpjs/file-management';
// Call once during app initialization
initializeFileManagementRoutes();
For advanced configuration:
import { configureRoutes, FILE_MANAGEMENT_ROUTE_PROVIDERS } from '@abpjs/file-management';
import { getRoutesService } from '@abpjs/core';
const routesService = getRoutesService();
const addRoutes = configureRoutes(routesService);
addRoutes();
Policy Names
Permission policy constants:
import { eFileManagementPolicyNames } from '@abpjs/file-management';
// Directory permissions
eFileManagementPolicyNames.DirectoryDescriptor // 'FileManagement.DirectoryDescriptor'
eFileManagementPolicyNames.DirectoryDescriptorCreate // 'FileManagement.DirectoryDescriptor.Create'
eFileManagementPolicyNames.DirectoryDescriptorUpdate // 'FileManagement.DirectoryDescriptor.Update'
eFileManagementPolicyNames.DirectoryDescriptorDelete // 'FileManagement.DirectoryDescriptor.Delete'
// File permissions
eFileManagementPolicyNames.FileDescriptor // 'FileManagement.FileDescriptor'
eFileManagementPolicyNames.FileDescriptorCreate // 'FileManagement.FileDescriptor.Create'
eFileManagementPolicyNames.FileDescriptorUpdate // 'FileManagement.FileDescriptor.Update'
eFileManagementPolicyNames.FileDescriptorDelete // 'FileManagement.FileDescriptor.Delete'
Route Names
Route name constants:
import { eFileManagementRouteNames } from '@abpjs/file-management';
eFileManagementRouteNames.FileManagement // 'FileManagement::Menu:FileManagement'
Component Keys
Component replacement keys:
import { eFileManagementComponents } from '@abpjs/file-management';
eFileManagementComponents.FolderContent // 'FileManagement.FolderContentComponent'
FileIconType Enum
File icon type enum:
import { FileIconType, fileIconTypeOptions } from '@abpjs/file-management';
FileIconType.FontAwesome // 0
FileIconType.Url // 1
// For select components
fileIconTypeOptions // [{ label: 'FontAwesome', value: 0 }, { label: 'Url', value: 1 }]
New Exports
Services:
FileDescriptorService- File CRUD operationsDirectoryDescriptorService- Directory CRUD operations
File Types:
FileDescriptorDto- File metadata DTOCreateFileInput- Input for creating filesMoveFileInput- Input for moving filesRenameFileInput- Input for renaming filesFileUploadPreInfoDto- Pre-upload validation resultFileUploadPreInfoRequest- Pre-upload validation inputFileIconInfo- File icon information
Directory Types:
DirectoryDescriptorDto- Directory metadata DTODirectoryDescriptorInfoDto- Directory info for tree viewsDirectoryContentDto- Directory content item DTODirectoryContentRequestInput- Content request inputCreateDirectoryInput- Input for creating directoriesMoveDirectoryInput- Input for moving directoriesRenameDirectoryInput- Input for renaming directories
Enums:
FileIconType- File icon type (FontAwesome, Url)fileIconTypeOptions- Select options for FileIconType
Config:
eFileManagementPolicyNames- Permission policy nameseFileManagementRouteNames- Route name constantseFileManagementComponents- Component replacement keysinitializeFileManagementRoutes()- Initialize routesconfigureRoutes(routes)- Configure routes with custom RoutesServiceFILE_MANAGEMENT_ROUTE_PROVIDERS- Route provider configuration
Models:
FileManagementConfigOptions- Module configuration optionsFolderInfo- Folder information typeFileInfo- File information type
Installation
npm install @abpjs/file-management
Dependencies
@abpjs/core>= 3.2.0@abpjs/theme-shared>= 3.2.0