fileController.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. /**
  2. * @description 获取文件目录 doc私有文档目录 www私有资源目录 public公有文档目录 dom公共下载目录
  3. * @param {string} type doc私有文档目录 www私有资源目录 public公有文档目录 dom公共下载目录
  4. */
  5. export function getFileIndex(type = 'doc') {
  6. let fileType = ''
  7. if (type == 'doc') {
  8. fileType = plus.io.PRIVATE_DOC;
  9. }
  10. if (type == 'www') {
  11. fileType = plus.io.PRIVATE_WWW;
  12. }
  13. if (type == 'public') {
  14. fileType = plus.io.PUBLIC_DOCUMENTS;
  15. }
  16. if (type == 'dom') {
  17. fileType = plus.io.PUBLIC_DOWNLOADS;
  18. }
  19. return new prompt((ok, err) => {
  20. plus.io.requestFileSystem(fileType, function(fs) {
  21. ok(fs)
  22. }, (e) => {
  23. err(e)
  24. });
  25. })
  26. }
  27. // 出案件或打开文件,//默认无法打开时创建文件
  28. /**
  29. * @description 创建或打开文件
  30. * @param {Object} fs //文件目录对象
  31. * @param {Object} fileName //要创建打开的文件名称
  32. */
  33. export function getFile(fs, fileName) {
  34. return new Promise((ok, err) => {
  35. // fs.root是根目录操作对象DirectoryEntry
  36. fs.root.getFile(fileName, {
  37. create: true
  38. }, function(fileEntry) {
  39. console.log('文件获取成功');
  40. ok(fileEntry)
  41. }, (e) => {
  42. err(e)
  43. });
  44. })
  45. }
  46. /**
  47. * @description 写入文件内容
  48. * @param {Object} fileEntry //文件对象
  49. */
  50. export function writerTxt(fileEntry, content) {
  51. return new Promise((ok, err) => {
  52. // 创建文件写入对象
  53. fileEntry.createWriter((writer) => {
  54. writer.write(content)
  55. // 写入成功
  56. writer.onwrite((e) => {
  57. ok(e)
  58. })
  59. // 写入失败
  60. writer.onerror((e) => {
  61. err(e)
  62. })
  63. }, (e) => {
  64. err(e.message)
  65. })
  66. })
  67. }
  68. /**
  69. * @description 获取文件操作对象
  70. * @param {Object} fs //文件目录对象
  71. * @param {Object} fileName //要创建打开的文件名称
  72. */
  73. export function getFileText(fs, fileName) {
  74. return new Promise((ok, err) => {
  75. getFile(fs, fileName).then((fileEntry) => {
  76. fileEntry.file(function(file) {
  77. var fileReader = new plus.io.FileReader();
  78. fileReader.readAsText(file, 'utf-8');
  79. // 文件读取成功
  80. fileReader.onloadend = function(evt) {
  81. // 获取文件内容信息在evt.target.result
  82. ok(evt)
  83. };
  84. // 文件读取失败
  85. fileReader.onerror((e) => {
  86. err(e)
  87. })
  88. }, (e) => {
  89. err(e)
  90. });
  91. }).catch((e) => {
  92. err(e)
  93. })
  94. })
  95. }