Is it possible to create new directory in externalRootDirectory
.
this.platform.ready().then(() =>{
if(this.platform.is('android')) {
this.file.checkDir(this.file.externalRootDirectory, 'Event').then(response => {
console.log('Directory exists'+response);
}).catch(err => {
console.log('Directory doesn\'t exist'+JSON.stringify(err));
this.file.createDir(this.file.externalRootDirectory, 'Event', false).then(response => {
console.log('Directory create'+response);
}).catch(err => {
console.log('Directory no create'+JSON.stringify(err));
});
});
}
});
No error shows.
Is it need extra permission to create new directory ?
ismailcse11:
this.file
What is this? Should we guess?
import { Platform } from 'ionic-angular';
import { File } from '@ionic-native/file';
export class SessionDetail {
constructor(private file: File,public platform: Platform,){
this.platform = platform;
this.file = file;
}
download(){
this.platform.ready().then(() =>{
if(this.platform.is('android')) {
this.file.checkDir(this.file.externalRootDirectory, 'Event').then(response => {
console.log('Directory exists'+response);
}).catch(err => {
console.log('Directory doesn\'t exist'+JSON.stringify(err));
this.file.createDir(this.file.externalRootDirectory, 'Event', false).then(response => {
console.log('Directory create'+response);
}).catch(err => {
console.log('Directory no create'+JSON.stringify(err));
});
});
}
});
}
}
This is my code for creating directory.
2 Likes
Is it possible to create directory. I am testing in mobile Samsung galaxy j7 prime. And mobile android version 7.0.0.
Did you try the code form the example?
Sorry for late reply.
when i am trying this below code in “ionic cordova run android --device -l -c --address 192.168.0.103 ” mode then show in console “console.log: {“code”:1,“message”:“NOT_FOUND_ERR”} ”
import { Platform } from 'ionic-angular';
import { File } from '@ionic-native/file';
export class SessionDetail {
constructor(private file: File,public platform: Platform,){
this.platform = platform;
this.file = file;
}
download(){
if(this.platform.is('android')) {
this.file.checkDir(this.file.dataDirectory, 'mydir').then(
response => console.log(response)
).catch(err => console.log(JSON.stringify(err)));
}
}
}
This error response " console.log: {“code”:1,“message”:“NOT_FOUND_ERR”} " is logged when it tries to create a file in a directory that doesn’t exist.
You need first to check if the directory exist, if not create it and then write the file. However, I have been strangling with this issue for a while and haven’t found a solution yet
You have to check first for permission if you are working over API level greater than 19
this.androidPermissions.hasPermission(this.androidPermissions.PERMISSION.READ_EXTERNAL_STORAGE)
.then(status => {
if (status.hasPermission) {
this.downloadFile();
}
else {
this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.READ_EXTERNAL_STORAGE)
.then(status => {
if(status.hasPermission) {
this.downloadFile();
}
});
}
});