Angular FileManager - FileSystemError
- <dx-file-manager id="fileManager">
- [fileSystemProvider]="keepExtensionsProvider">
- <dxo-permissions rename="true">
- </dxo-permissions>
- <!-- ... -->
- </dx-file-manager>
- import { Component } from '@angular/core';
- import ObjectFileSystemProvider from 'devextreme/file_management/object_provider';
- import CustomFileSystemProvider from 'devextreme/file_management/custom_provider';
- import FileSystemError from 'devextreme/file_management/error';
- import { Service, FileItem } from "./app.service";
- @Component({
- selector: 'app-root',
- templateUrl: './app.component.html',
- styleUrls: ['./app.component.css'],
- providers: [Service]
- })
- export class AppComponent {
- fileItems: FileItem[];
- objectProvider: ObjectFileSystemProvider;
- keepExtensionsProvider: CustomFileSystemProvider;
- constructor(service: Service) {
- this.fileItems = service.getFileItems();
- this.objectProvider = new ObjectFileSystemProvider({
- data: this.fileItems
- });
- this.keepExtensionsProvider = new CustomFileSystemProvider({
- getItems: (parentDir) => this.getItems(parentDir),
- renameItem: (item, newName) => this.renameItem(item, newName)
- });
- }
- getItems(item) {
- return this.objectProvider.getItems(item);
- }
- renameItem(item, newName) {
- return new Promise<any>((resolve, reject) => {
- if(item.getFileExtension() !== this.getExtension(newName)) {
- // 1 - reject
- reject(new FileSystemError(5, item, "You cannot change the file extension."));
- // 2 - throw
- // throw new FileSystemError(5, item, "You cannot change the file extension.");
- } else {
- resolve(this.objectProvider.renameItem(item, newName));
- }
- });
- }
- getExtension(path) {
- const index = path.lastIndexOf(".");
- return index !== -1 ? path.substr(index) : "";
- }
- }
- import { BrowserModule } from '@angular/platform-browser';
- import { NgModule } from '@angular/core';
- import { AppComponent } from './app.component';
- import { DxFileManagerModule } from "devextreme-angular";
- @NgModule({
- imports: [
- // ...
- DxFileManagerModule
- ],
- declarations: [AppComponent],
- bootstrap: [AppComponent]
- })
- export class AppModule { }
If you have technical questions, please create a support ticket in the DevExpress Support Center.