Я не могу создать и написать текстовый файл в моем приложении ioni c - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь создать файл и затем пишу в нем, и он говорит, что он создает, но когда я go в папку, там ничего нет.

Может кто-нибудь сказать мне, что я делаю не так?

Вот мой код:

this.file.createFile(this.file.dataDirectory, array.ERROR + '_error', true).then(() => {
                    console.log("Created the file!" + this.file.dataDirectory.toString());
                  }).catch(err => console.log(err));


                  let blob_toSend = new Blob([this.inputxml], { type: 'text/plain' });
                  this.file.writeFile(this.file.dataDirectory, array.ERROR + '_error', blob_toSend, {replace: true, append: false}).then(() => {
                    console.log("Wrote the file!");
                  }).catch(err => console.log(err));

Я пытался дать ему имя, например "_error.txt", но это тоже не работает Файл не отображается. Заранее спасибо

1 Ответ

1 голос
/ 12 марта 2020

В вашем файле ts:

export class HomePage {
  fileValue:string;
  constructor(private plt:Platform,private file: File) {}

  checkValueExist(){
    return (this.fileValue);
  }

  createFile(){
    if(this.checkValueExist()){
      this.file.createFile(this.file.dataDirectory,this.fileValue,true).then(xfile=>{
        let filePath = xfile.nativeURL.substr(0, xfile.nativeURL.lastIndexOf('/') + 1);
        if (this.plt.is('android')) {
          this.copyToAppAndroidDir(filePath, xfile.name, this.createFileName(xfile.name));
        }else{
          this.copyToAppIosDir(filePath, xfile.name, this.createFileName(xfile.name));
        }
      }).catch(err=>{
        alert('File Not Created cause of : '+ JSON.stringify(err));
      })
    }else{
      alert('empty text');
    }
  }

  createFileName(name) {
    var newFileName = name + ".txt";
    return newFileName;
  }

  copyToAppAndroidDir(namePath, currentName, newFileName) {
    this.file.copyFile(namePath, currentName, this.file.externalDataDirectory, newFileName).then(success => {
      alert('done');
    }, error => {
      console.log('err :', error);
    });
  }
  copyToAppIosDir(namePath, currentName, newFileName) {
    this.file.copyFile(namePath, currentName, this.file.dataDirectory, newFileName).then(success => {
      alert('done');
    }, error => {
      console.log('err :', error);
    });
//here in the this.file.dataDirectory for ios it may work or could be tempDirectory since in reality i have android device and don't know where ios store its files so you can change when testing on ios and know the directory.
  }
}

И в html:

<ion-input type="text" [(ngModel)]="fileValue"></ion-input>

  <ion-button color="primary" shape="round" expand="block" (click)="createFile()">Create File</ion-button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...