React Common - Object Structures - FileSystemError
import FileSystemError from "devextreme/file_management/error"
App.js
data.js
- import React from "react";
- import ObjectFileSystemProvider from "devextreme/file_management/object_provider";
- import CustomFileSystemProvider from "devextreme/file_management/custom_provider";
- import FileSystemError from "devextreme/file_management/error";
- import FileManager, { Permissions } from "devextreme-react/file-manager";
- import { fileItems } from "./data.js";
- import 'devextreme/dist/css/dx.light.css';
- const objectProvider = new ObjectFileSystemProvider({
- data: fileItems
- });
- const keepExtensionsProvider = new CustomFileSystemProvider({
- getItems: (parentDir) => getItems(parentDir),
- renameItem: (item, newName) => renameItem(item, newName),
- });
- function getItems(parentDir) {
- return objectProvider.getItems(parentDir);
- };
- function renameItem(item, newName) {
- return new Promise((resolve, reject) => {
- if(item.getFileExtension() !== 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(objectProvider.renameItem(item, newName));
- }
- });
- };
- function getExtension(path) {
- const index = path.lastIndexOf(".");
- return index !== -1 ? path.substr(index) : "";
- };
- const App = () => {
- return (
- <FileManager
- fileSystemProvider={keepExtensionsProvider}>
- <Permissions rename={true}></Permissions>
- </FileManager>
- );
- };
- export default App;
- export const fileItems = [{
- 'name': 'Documents',
- 'isDirectory': true,
- 'items': [{
- 'name': 'Projects',
- 'isDirectory': true,
- 'items': [{
- 'name': 'About.rtf',
- 'isDirectory': false,
- 'size': 1024
- }, {
- 'name': 'Passwords.rtf',
- 'isDirectory': false,
- 'size': 2048
- }]
- }, {
- 'name': 'About.xml',
- 'isDirectory': false,
- 'size': 1024
- }, {
- 'name': 'Managers.rtf',
- 'isDirectory': false,
- 'size': 2048
- }, {
- 'name': 'ToDo.txt',
- 'isDirectory': false,
- 'size': 3072
- }],
- }, {
- 'name': 'Images',
- 'isDirectory': true,
- 'items': [{
- 'name': 'logo.png',
- 'isDirectory': false,
- 'size': 20480
- }, {
- 'name': 'banner.gif',
- 'isDirectory': false,
- 'size': 10240
- }]
- }, {
- 'name': 'System',
- 'isDirectory': true,
- 'items': [{
- 'name': 'Employees.txt',
- 'isDirectory': false,
- 'size': 3072
- }, {
- 'name': 'PasswordList.txt',
- 'isDirectory': false,
- 'size': 5120
- }]
- }, {
- 'name': 'Description.rtf',
- 'isDirectory': false,
- 'size': 1024
- }, {
- 'name': 'Description.txt',
- 'isDirectory': false,
- 'size': 2048
- }];
Feel free to share topic-related thoughts here.
If you have technical questions, please create a support ticket in the DevExpress Support Center.
Thank you for the feedback!
If you have technical questions, please create a support ticket in the DevExpress Support Center.