Vue Common - Object Structures - FileSystemError
import FileSystemError from "devextreme/file_management/error"
App.vue
data.js
- <template>
- <DxFileManager :file-system-provider="keepExtensionsProvider">
- <DxPermissions :rename="true" />
- </DxFileManager>
- </template>
- <script>
- import ObjectFileSystemProvider from "devextreme/file_management/object_provider";
- import CustomFileSystemProvider from "devextreme/file_management/custom_provider";
- import FileSystemError from "devextreme/file_management/error";
- import { DxFileManager, DxPermissions } from "devextreme-vue/file-manager";
- import { fileItems } from "./data.js";
- export default {
- components: {
- DxFileManager,
- DxPermissions,
- },
- data() {
- return {
- objectProvider: new ObjectFileSystemProvider({ data: fileItems }),
- keepExtensionsProvider: new CustomFileSystemProvider({
- getItems: (parentDir) => this.getItems(parentDir),
- renameItem: (item, newName) => this.renameItem(item, newName),
- }),
- };
- },
- methods: {
- getItems(parentDir) {
- return this.objectProvider.getItems(parentDir);
- },
- renameItem(item, newName) {
- return new Promise((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));
- }
- });
- },
- },
- },
- };
- </script>
- 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.