LoginSignup
2
2

More than 5 years have passed since last update.

cordova-plugin-file

cordova-plugin-fileプラグインのサンプルコードを記載します。

カウント

Documents配下のファイル数をログ出しします。

window.requestFileSystem(
  LocalFileSystem.PERSISTENT,
  0,
  (fileSystem) => {
      let directoryEntry = fileSystem.root;
      var directoryReader = directoryEntry.createReader();
      directoryReader.readEntries((fileEntries) => {
      console.log('fileEntries.length', fileEntries,  fileEntries.length);
      });
  }
);

コピー

Documents配下のcopyIndex番目にあるファイルを、1000個複製します。

window.requestFileSystem(
  LocalFileSystem.PERSISTENT,
  0,
  (fileSystem) => {
    let directoryEntry = fileSystem.root;
    var directoryReader = directoryEntry.createReader();
    directoryReader.readEntries((fileEntries) => {
      const copyIndex = 1;
      const copyLength = 1000;
      for (var index = 0; index < copyLength; index++) {
        console.log('index', index);

        // ファイルを新しいディレクトリにコピーし、名前付け替えます
        fileEntries[copyIndex].copyTo(fileSystem.root, `${fileEntries[copyIndex].name}_${index}.png`, (sucsses) => {
      // console.log('sucsses', sucsses);
    }, (error) => {
      // console.log('error', error);
    } );
      }
    });
  }
);

削除

Documents配下のファイルを全て削除します。
ディレクトリは削除しません。

window.requestFileSystem(
  LocalFileSystem.PERSISTENT,
  0,
  (fileSystem) => {
      const directoryEntry = fileSystem.root;
      const directoryReader = directoryEntry.createReader();
      directoryReader.readEntries((fileEntries) => {
          for (let index = 0; index < fileEntries.length; index++) {
              const fileEntry = fileEntries[index];
              if (fileEntry.name.match(/IMG_/)) {
                  fileEntry.remove(
                    (aaa) => {
                        console.log('成功', aaa);
                    },
                    (bbb) => {
                        console.log('失敗', bbb);
                    }
                  );
              }
              console.log(fileEntries[index].name)
          }
      });
      console.log('directoryEntry', directoryEntry); },
  (onFileSystemFail) => {
      console.log('onFileSystemFail', onFileSystemFail)
  }
);

削除(ログなし)

Documents配下のファイルを全て削除します。
ディレクトリは削除しません。
ログを出さず、削除にかかった時間を計測するのに使いました。

console.time('timer1');
window.requestFileSystem(
  LocalFileSystem.PERSISTENT,
  0,
  (fileSystem) => {
      const directoryEntry = fileSystem.root;
      const directoryReader = directoryEntry.createReader();
      directoryReader.readEntries((fileEntries) => {
          for (let index = 0; index < fileEntries.length; index++) {
              const fileEntry = fileEntries[index];
              if (fileEntry.name.match(/IMG_/)) {
                  fileEntry.remove();
              }
          }
          console.timeEnd('timer1');
      });
    }
);
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2