get-file-system-manager.uvue 71 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947
  1. <template>
  2. <!-- #ifdef APP -->
  3. <text>显示简易操作日志(可滚动查看),详细日志需真机运行查看</text><button size="mini" @click="log=''">清空日志</button>
  4. <scroll-view style="max-height: 300px;">
  5. <text style="margin: 2px; padding: 2px; border: 1px solid #000000;">{{ log }}</text>
  6. </scroll-view>
  7. <scroll-view style="flex: 1;">
  8. <!-- #endif -->
  9. <!-- #ifdef MP -->
  10. <text style="margin: 2px; padding: 2px; border: 1px solid #000000;">{{ log }}</text>
  11. <!-- #endif -->
  12. <button class="btnstyle" type="primary" @tap="statFileInfoTest"
  13. id="btn-stat-file">递归获取目录files的Stats对象{{statFile}}</button>
  14. <button class="btnstyle" type="primary" @tap="mkdirTest" id="btn-mkdir">创建文件夹{{mkdirFile}}</button>
  15. <button class="btnstyle" type="primary" @tap="writeFileTest" id="btn-write-file">覆盖写入文件{{writeFile}}</button>
  16. <button class="btnstyle" type="primary" @tap="readDirTest" id="btn-read-dir">读取文件夹{{readDir}}</button>
  17. <button class="btnstyle" type="primary" @tap="readFileTest" id="btn-read-file">读取文件{{readFile}}</button>
  18. <button class="btnstyle" type="primary" @tap="copyFileTest"
  19. id="btn-copy-file">复制文件{{copyFromFile}}到{{copyToFile}}</button>
  20. <button class="btnstyle" type="primary" @tap="renameFileTest"
  21. id="btn-rename-file">重命名文件{{renameFromFile}}到{{renameToFile}}</button>
  22. <button class="btnstyle" type="primary" @tap="accessFileTest" id="btn-access-file">判断文件{{accessFile}}是否存在</button>
  23. <button class="btnstyle" type="primary" @tap="getFileInfoTest"
  24. id="btn-get-file-info">获取文件信息{{getFileInfoFile}}</button>
  25. <button class="btnstyle" type="primary" @tap="unlinkTest" id="btn-unlink-file">删除文件{{unlinkFile}}</button>
  26. <button class="btnstyle" type="primary" @tap="unlinkAllFileTest"
  27. id="btn-clear-file">删除文件夹{{rmDirFile}}下的所有文件</button>
  28. <button class="btnstyle" type="primary" @tap="rmdirTest" id="btn-remove-dir">删除文件夹{{rmDirFile}}</button>
  29. <button class="btnstyle" type="primary" @tap="statFileInfoSyncTest"
  30. id="btn-stat-file-sync">同步递归获取目录files的Stats对象{{statFile}}</button>
  31. <button class="btnstyle" type="primary" @tap="appendFileTest" id="btn-append-file">在文件{{readFile}}结尾追加内容</button>
  32. <button class="btnstyle" type="primary" @tap="appendFileSyncTest"
  33. id="btn-append-file-sync">同步在文件{{readFile}}结尾追加内容</button>
  34. <button class="btnstyle" type="primary" @tap="writeFileSyncTest"
  35. id="btn-write-file-sync">同步覆盖写入文件{{writeFile}}</button>
  36. <button class="btnstyle" type="primary" @tap="readFileSyncTest" id="btn-read-file-sync">同步读取文件{{readFile}}</button>
  37. <button class="btnstyle" type="primary" @tap="unlinkSyncTest"
  38. id="btn-unlink-file-sync">同步删除文件{{unlinkFile}}</button>
  39. <button class="btnstyle" type="primary" @tap="mkdirSyncTest" id="btn-mkdir-sync">同步创建文件夹{{mkdirFile}}</button>
  40. <button class="btnstyle" type="primary" @tap="rmdirSyncTest" id="btn-remove-dir-sync">同步删除文件夹{{rmDirFile}}</button>
  41. <button class="btnstyle" type="primary" @tap="readDirSyncTest" id="btn-read-dir-sync">同步读取文件夹{{readDir}}</button>
  42. <button class="btnstyle" type="primary" @tap="accessFileSyncTest"
  43. id="btn-access-file-sync">同步判断文件{{accessFile}}是否存在</button>
  44. <button class="btnstyle" type="primary" @tap="renameFileSync"
  45. id="btn-rename-file-sync">同步重命名文件{{renameFromFile}}到{{renameToFile}}</button>
  46. <button class="btnstyle" type="primary" @tap="copyFileSyncTest"
  47. id="btn-copy-file-sync">同步复制文件{{copyFromFile}}到{{copyToFile}}</button>
  48. <button class="btnstyle" type="primary" @tap="removeSavedFileTest" id="btn-remove-saved-file">删除已保存的本地文件</button>
  49. <button class="btnstyle" type="primary" @tap="getSavedFileListTest"
  50. id="btn-getsaved-filelist">获取该已保存的本地缓存文件列表</button>
  51. <button class="btnstyle" type="primary" @tap="truncateFileTest"
  52. id="btn-truncate-file">对文件{{writeFile}}内容进行截断操作</button>
  53. <button class="btnstyle" type="primary" @tap="openFileTest" id="btn-open-file">打开文件{{readFile}},返回描述符</button>
  54. <button class="btnstyle" type="primary" @tap="openFileSyncTest('r',true)"
  55. id="btn-open-file-sync">同步打开文件{{readFile}},返回描述符</button>
  56. <button class="btnstyle" type="primary" @tap="closeTest" id="btn-close-file">通过文件描述符关闭文件{{readFile}}</button>
  57. <button class="btnstyle" type="primary" @tap="closeSyncTest"
  58. id="btn-close-file-sync">通过文件描述符同步关闭文件{{readFile}}</button>
  59. <button class="btnstyle" type="primary" @tap="writeTest" id="btn-write">通过文件描述符写入文件{{readFile}}</button>
  60. <button class="btnstyle" type="primary" @tap="writeSyncTest" id="btn-write-sync">同步通过文件描述符写入文件{{readFile}}</button>
  61. <button class="btnstyle" type="primary" @tap="fstatTest" id="btn-fstat-file">通过文件描述符获取{{statFile}}的状态信息</button>
  62. <button class="btnstyle" type="primary" @tap="fstatSyncTest"
  63. id="btn-fstat-file-sync">同步通过文件描述符获取{{statFile}}的状态信息</button>
  64. <button class="btnstyle" type="primary" @tap="ftruncateFileTest"
  65. id="btn-ftruncate-file">通过文件描述符对文件{{writeFile}}内容进行截断</button>
  66. <button class="btnstyle" type="primary" @tap="ftruncateFileSyncTest"
  67. id="btn-ftruncate-file-sync">同步通过文件描述符对文件{{writeFile}}内容进行截断</button>
  68. <button class="btnstyle" type="primary" @tap="testWriteReadFileBuffer" id="btn-writereadfile-buffer">写入/读取
  69. ArrayBuffer</button>
  70. <button class="btnstyle" type="primary" @tap="testWriteReadBuffer" id="btn-writeread-buffer">通过文件描述符写入/读取
  71. ArrayBuffer</button>
  72. <button class="btnstyle" type="primary" @tap="testWriteReadSyncBuffer" id="btn-writereadsync-buffer">通过文件描述符同步写入/读取
  73. ArrayBuffer</button>
  74. <button class="btnstyle" type="primary" @tap="testAppendFileBuffer" id="btn-appendfile-buffer">在文件末尾追加
  75. ArrayBuffer</button>
  76. <button class="btnstyle" type="primary" @tap="testAppendFileBufferSync" id="btn-appendfilesync-buffer">同步在文件末尾追加
  77. ArrayBuffer</button>
  78. <!-- #ifdef APP -->
  79. <button class="btnstyle" type="primary" @tap="copyStaticToFilesTest"
  80. id="btn-copyStatic-file">从static目录复制文件到a目录</button>
  81. <button class="btnstyle" type="primary" @tap="saveFileTest" id="btn-save-file">保存临时文件到本地, filePath=null</button>
  82. <button class="btnstyle" type="primary" @tap="saveFileTest1" id="btn-save-file1">保存临时文件到本地,
  83. filePath=xxx/path.txt</button>
  84. <button class="btnstyle" type="primary" @tap="saveFileTest2" id="btn-save-file2">保存临时文件到本地,
  85. filePath=xxx/path</button>
  86. <button class="btnstyle" type="primary" @tap="saveFileTest3" id="btn-save-file3">保存临时文件到本地,
  87. filePath=xxx/path/</button>
  88. <button class="btnstyle" type="primary" @tap="saveFileSyncTest" id="btn-save-file-sync">同步保存临时文件到本地</button>
  89. <button class="btnstyle" type="primary" @tap="unzipFileTest" id="btn-unzip-file-sync">解压文件</button>
  90. <button class="btnstyle" type="primary" @tap="truncateFileSyncTest"
  91. id="btn-truncate-file-sync">同步对文件{{writeFile}}内容进行截断操作</button>
  92. <button class="btnstyle" type="primary" @tap="readCompressedFileTest"
  93. id="btn-compressed-file">读取指定压缩类型的本地文件内容</button>
  94. <button class="btnstyle" type="primary" @tap="readCompressedFileSyncTest"
  95. id="btn-compressed-file-sync">同步读取指定压缩类型的本地文件内容</button>
  96. <button class="btnstyle" type="primary" @tap="readZipEntry" id="btn-readzip-entry">读取压缩包内的文件</button>
  97. <button class="btnstyle" type="primary" @tap="testWriteReadFileSyncBuffer" id="btn-writereadfilesync-buffer">同步写入/读取
  98. ArrayBuffer</button>
  99. <button class="btnstyle" type="primary" @tap="testReadFileEncoding('base64')">readFile(content://base64)</button>
  100. <button class="btnstyle" type="primary" @tap="testReadFileEncoding('utf-8')">readFile(content://utf-8)</button>
  101. <button class="btnstyle" type="primary" @tap="testReadFileEncoding('ascii')">readFile(content://ascii)</button>
  102. <button class="btnstyle" type="primary" @tap="testReadFileArrayBuffer()">readFile(content://arraybuffer)</button>
  103. <button class="btnstyle" type="primary"
  104. @tap="testReadFileSyncEncoding('base64')">readFileSync(content://base64)</button>
  105. <button class="btnstyle" type="primary"
  106. @tap="testReadFileSyncEncoding('utf-8')">readFileSync(content://utf-8)</button>
  107. <button class="btnstyle" type="primary"
  108. @tap="testReadFileSyncEncoding('ascii')">readFileSync(content://ascii)</button>
  109. <button class="btnstyle" type="primary"
  110. @tap="testReadFileSyncArrayBuffer()">readFileSync(content://arraybuffer)</button>
  111. <button class="btnstyle" type="primary" @tap="copyFileByContent()">copyFile(content://)</button>
  112. <button class="btnstyle" type="primary" @tap="copyFileSyncByContent()">copyFileSync(content://)</button>
  113. <!-- #endif -->
  114. <button class="btnstyle" type="primary" @tap="gotoExplore()">前往沙盒文件管理器</button>
  115. <view style="height: 4px;"></view>
  116. <!-- #ifdef APP -->
  117. </scroll-view>
  118. <!-- #endif -->
  119. </template>
  120. <script>
  121. export default {
  122. data() {
  123. return {
  124. log: "",
  125. /**
  126. * 自动化测试需要关闭log
  127. */
  128. logAble: true,
  129. fileListSuccess: [] as string[],
  130. fileListComplete: [] as string[],
  131. accessFileRet: '',
  132. lastFailError: new UniError("uni-file-manager", 1300000, "mock error"),
  133. lastCompleteError: new UniError("uni-file-manager", 1300000, "mock error"),
  134. readDir: 'a',
  135. readFileRet: "",
  136. writeFileContent: "中文 en.\r\n\t换行",
  137. appendFileContent: "append content",
  138. getFileInfoAlgorithm: "md5",
  139. getFileInfoSize: -1,
  140. getFileInfoDigest: "",
  141. unlinkFile: 'a/1.txt',
  142. accessFile: 'a/1.txt',
  143. writeFile: 'a/1.txt',
  144. writeData: 'insert data哈哈哈',
  145. brFile: 'a/1.txt.br',
  146. temFile: 'a/1.txt',
  147. copyFromFile: 'a/1.txt',
  148. copyToFile: 'a/2.txt',
  149. renameFromFile: 'a/2.txt',
  150. renameToFile: 'a/3.txt',
  151. getFileInfoFile: 'a/1.txt',
  152. statFile: '',
  153. rmDirFile: 'a',
  154. mkdirFile: 'a',
  155. readFile: 'a/1.txt',
  156. recursiveVal: true,
  157. done: false,
  158. writeFileEncoding: "utf-8",
  159. readFileEncoding: "utf-8",
  160. statsRet: [] as Array<FileStats>,
  161. unzipFile: 'zip/1.zip',
  162. targetZip: "unzip",
  163. renameFileRet: '',
  164. saveFileRet: '',
  165. removeSavedFileRet: '',
  166. fd: '',
  167. closeFileRet: '',
  168. bytesWritten: 0,
  169. fstat: null as Stats | null,
  170. fstatSize: 0,
  171. ftruncateRet: '',
  172. readZipFile: 'to.zip',
  173. getSavedFileListRet: '',
  174. arrayBufferRes: 0,
  175. /**
  176. * 待测试的全局环境变量
  177. */
  178. // #ifdef MP
  179. basePath: uni.env.USER_DATA_PATH + '/',
  180. copyToBasePath: uni.env.USER_DATA_PATH + '/',
  181. globalTempPath: uni.env.CACHE_PATH,
  182. globalRootPath: uni.env.SANDBOX_PATH,
  183. globalUserDataPath: uni.env.USER_DATA_PATH + '/',
  184. // #endif
  185. // #ifndef MP
  186. basePath: uni.env.USER_DATA_PATH,
  187. copyToBasePath: uni.env.USER_DATA_PATH,
  188. globalTempPath: uni.env.CACHE_PATH,
  189. globalRootPath: uni.env.SANDBOX_PATH,
  190. globalUserDataPath: uni.env.USER_DATA_PATH,
  191. // #endif
  192. }
  193. },
  194. onLoad() {
  195. },
  196. methods: {
  197. statFileInfoTest: function (_ : any) {
  198. const fileManager = uni.getFileSystemManager()
  199. fileManager.stat({
  200. path: `${this.basePath}${this.statFile}`, //USER_DATA_PATH
  201. // path: `${this.globalTempPath}${this.statFile}`, //CACHE_PATH
  202. recursive: this.recursiveVal,
  203. success: (res : StatSuccessResult) => {
  204. if (this.logAble) {
  205. this.log += 'statFileInfoTest success:' + JSON.stringify(res) + '\n\n'
  206. }
  207. console.log('statFileInfoTest success', res)
  208. this.statsRet = res.stats
  209. console.log('this.statsRet', this.statsRet)
  210. },
  211. fail: (res : IUniError) => {
  212. if (this.logAble) {
  213. this.log += 'statFileInfoTest fail:' + JSON.stringify(res) + '\n\n'
  214. }
  215. console.log('statFileInfoTest fail', res)
  216. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  217. },
  218. complete: (res : any) => {
  219. console.log("statFileInfoTest complete", res)
  220. this.done = true
  221. if (res instanceof UniError) {
  222. this.lastCompleteError = res
  223. }
  224. }
  225. } as StatOptions)
  226. },
  227. getFileInfoTest: function () {
  228. const fileManager = uni.getFileSystemManager()
  229. fileManager.getFileInfo({
  230. filePath: `${this.basePath}${this.getFileInfoFile}`,
  231. digestAlgorithm: this.getFileInfoAlgorithm,
  232. success: (res : GetFileInfoSuccessResult) => {
  233. if (this.logAble) {
  234. this.log += 'getFileInfoTest success:' + JSON.stringify(res) + '\n\n'
  235. }
  236. console.log('success', res)
  237. this.getFileInfoSize = res.size
  238. this.getFileInfoDigest = res.digest
  239. },
  240. fail: (res : IUniError) => {
  241. if (this.logAble) {
  242. this.log += 'getFileInfoTest fail:' + JSON.stringify(res) + '\n\n'
  243. }
  244. console.log('fail', res)
  245. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  246. },
  247. complete: (res : any) => {
  248. console.log("complete", res)
  249. this.done = true
  250. if (res instanceof UniError) {
  251. this.lastCompleteError = res
  252. }
  253. }
  254. } as GetFileInfoOptions)
  255. },
  256. copyFileTest: function () {
  257. const fileManager = uni.getFileSystemManager()
  258. fileManager.copyFile({
  259. srcPath: `${this.basePath}${this.copyFromFile}`,
  260. destPath: `${this.copyToBasePath}${this.copyToFile}`,
  261. success: (res : FileManagerSuccessResult) => {
  262. if (this.logAble) {
  263. this.log += 'copyFileTest success:' + JSON.stringify(res) + '\n\n'
  264. }
  265. console.log('success', res)
  266. },
  267. fail: (res : IUniError) => {
  268. if (this.logAble) {
  269. this.log += 'copyFileTest fail:' + JSON.stringify(res) + '\n\n'
  270. }
  271. console.log('fail', res)
  272. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  273. },
  274. complete: (res : any) => {
  275. console.log("complete", res)
  276. this.done = true
  277. if (res instanceof UniError) {
  278. this.lastCompleteError = res
  279. }
  280. }
  281. } as CopyFileOptions)
  282. },
  283. renameFileTest: function () {
  284. const fileManager = uni.getFileSystemManager()
  285. fileManager.rename({
  286. oldPath: `${this.basePath}${this.renameFromFile}`,
  287. newPath: `${this.basePath}${this.renameToFile}`,
  288. success: (res) => {
  289. if (this.logAble) {
  290. this.log += 'renameFileTest success:' + JSON.stringify(res) + '\n\n'
  291. }
  292. this.renameFileRet = "rename:ok"
  293. console.log('success', res)
  294. },
  295. fail: (res : IUniError) => {
  296. if (this.logAble) {
  297. this.log += 'renameFileTest fail:' + JSON.stringify(res) + '\n\n'
  298. }
  299. console.log('fail', res)
  300. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  301. },
  302. complete: (res : any) => {
  303. this.done = true
  304. console.log("complete", res)
  305. if (res instanceof UniError) {
  306. this.lastCompleteError = res
  307. }
  308. }
  309. } as RenameOptions)
  310. },
  311. readDirTest: function () {
  312. const fileManager = uni.getFileSystemManager()
  313. fileManager.readdir({
  314. dirPath: `${this.basePath}${this.readDir}`,
  315. success: (res : ReadDirSuccessResult) => {
  316. if (this.logAble) {
  317. this.log += 'readDirTest success:' + JSON.stringify(res) + '\n\n'
  318. }
  319. console.log("success", res)
  320. this.fileListSuccess = res.files
  321. },
  322. fail: (res : IUniError) => {
  323. if (this.logAble) {
  324. this.log += 'readDirTest fail:' + JSON.stringify(res) + '\n\n'
  325. }
  326. console.log('fail', res)
  327. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  328. },
  329. complete: (res : any) => {
  330. console.log("complete", res)
  331. this.done = true
  332. if (res instanceof UniError) {
  333. this.lastCompleteError = res
  334. } else {
  335. this.fileListComplete = (res as ReadDirSuccessResult).files
  336. }
  337. }
  338. } as ReadDirOptions)
  339. },
  340. writeFileTest: function (_ : any) {
  341. const fileManager = uni.getFileSystemManager()
  342. fileManager.writeFile({
  343. filePath: `${this.basePath}${this.writeFile}`,
  344. data: this.writeFileContent,
  345. encoding: this.writeFileEncoding,
  346. success: (res) => {
  347. if (this.logAble) {
  348. this.log += 'writeFileTest success:' + JSON.stringify(res) + '\n\n'
  349. }
  350. console.log('success', res)
  351. },
  352. fail: (res : IUniError) => {
  353. if (this.logAble) {
  354. this.log += 'writeFileTest fail:' + JSON.stringify(res) + '\n\n'
  355. }
  356. console.log('fail')
  357. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  358. },
  359. complete: (res : any) => {
  360. this.done = true
  361. console.log("complete")
  362. if (res instanceof UniError) {
  363. this.lastCompleteError = res
  364. }
  365. }
  366. } as WriteFileOptions)
  367. },
  368. readFileTest: function () {
  369. const fileManager = uni.getFileSystemManager()
  370. fileManager.readFile({
  371. filePath: `${this.basePath}${this.readFile}`,
  372. encoding: this.readFileEncoding,
  373. success: (res : ReadFileSuccessResult) => {
  374. if (this.logAble) {
  375. this.log += 'readFileTest success:' + JSON.stringify(res) + '\n\n'
  376. }
  377. console.log('success', res)
  378. this.readFileRet = res.data.toString()
  379. },
  380. fail: (res : IUniError) => {
  381. if (this.logAble) {
  382. this.log += 'readFileTest fail:' + JSON.stringify(res) + '\n\n'
  383. }
  384. console.log('fail', res)
  385. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  386. },
  387. complete: (res : any) => {
  388. console.log("complete", res)
  389. this.done = true
  390. if (res instanceof UniError) {
  391. this.lastCompleteError = res
  392. }
  393. }
  394. } as ReadFileOptions)
  395. },
  396. rmdirTest: function () {
  397. const fileManager = uni.getFileSystemManager()
  398. fileManager.rmdir({
  399. dirPath: `${this.basePath}${this.rmDirFile}`,
  400. recursive: this.recursiveVal,
  401. success: (res : FileManagerSuccessResult) => {
  402. if (this.logAble) {
  403. this.log += 'rmdirTest success:' + JSON.stringify(res) + '\n\n'
  404. }
  405. console.log('success', res)
  406. },
  407. fail: (res : IUniError) => {
  408. if (this.logAble) {
  409. this.log += 'rmdirTest fail:' + JSON.stringify(res) + '\n\n'
  410. }
  411. console.log('fail', res)
  412. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  413. },
  414. complete: (res : any) => {
  415. console.log("complete", res)
  416. this.done = true
  417. if (res instanceof UniError) {
  418. this.lastCompleteError = res
  419. }
  420. }
  421. } as RmDirOptions)
  422. },
  423. mkdirTest: function () {
  424. // 准备测试数据
  425. const fileManager = uni.getFileSystemManager()
  426. fileManager.mkdir({
  427. dirPath: `${this.basePath}${this.mkdirFile}`,
  428. recursive: this.recursiveVal,
  429. success: (res : FileManagerSuccessResult) => {
  430. if (this.logAble) {
  431. this.log += 'mkdirTest success:' + JSON.stringify(res) + '\n\n'
  432. }
  433. console.log('success', res)
  434. },
  435. fail: (res : IUniError) => {
  436. if (this.logAble) {
  437. this.log += 'mkdirTest fail:' + JSON.stringify(res) + '\n\n'
  438. }
  439. console.log('fail', res)
  440. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  441. },
  442. complete: (res : any) => {
  443. if (res instanceof UniError) {
  444. this.lastCompleteError = res
  445. }
  446. this.done = true
  447. console.log("complete", res)
  448. }
  449. } as MkDirOptions)
  450. },
  451. accessFileTest: function () {
  452. this.accessFileRet = ''
  453. const fileManager = uni.getFileSystemManager()
  454. fileManager.access({
  455. path: `${this.basePath}${this.accessFile}`,
  456. success: (res : FileManagerSuccessResult) => {
  457. if (this.logAble) {
  458. this.log += 'accessFileTest success:' + JSON.stringify(res) + '\n\n'
  459. }
  460. console.log('success', res)
  461. this.accessFileRet = res.errMsg
  462. },
  463. fail: (res : IUniError) => {
  464. if (this.logAble) {
  465. this.log += 'accessFileTest fail:' + JSON.stringify(res) + '\n\n'
  466. }
  467. console.log('fail', res)
  468. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  469. },
  470. complete: (res : any) => {
  471. if (res instanceof UniError) {
  472. this.lastCompleteError = res
  473. }
  474. console.log("complete", res)
  475. this.done = true
  476. }
  477. } as AccessOptions)
  478. },
  479. unlinkTest: function () {
  480. const fileManager = uni.getFileSystemManager()
  481. fileManager.unlink({
  482. filePath: `${this.basePath}${this.unlinkFile}`,
  483. success: (res : FileManagerSuccessResult) => {
  484. if (this.logAble) {
  485. this.log += 'unlinkTest success:' + JSON.stringify(res) + '\n\n'
  486. }
  487. console.log('success', res)
  488. },
  489. fail: (res : IUniError) => {
  490. if (this.logAble) {
  491. this.log += 'unlinkTest fail:' + JSON.stringify(res) + '\n\n'
  492. }
  493. console.log('fail', res)
  494. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  495. },
  496. complete: (res : any) => {
  497. if (res instanceof UniError) {
  498. this.lastCompleteError = res
  499. }
  500. console.log("complete", res)
  501. this.done = true
  502. }
  503. } as UnLinkOptions)
  504. },
  505. unlinkAllFileTest: function () {
  506. const fileManager = uni.getFileSystemManager()
  507. fileManager.readdir({
  508. dirPath: `${this.basePath}${this.rmDirFile}`,
  509. success: (res : ReadDirSuccessResult) => {
  510. console.log("success to readdir", res)
  511. res.files.forEach(element => {
  512. console.log(element)
  513. let filePath : string
  514. if (this.rmDirFile.length <= 0) {
  515. filePath = `${this.basePath}${element}`
  516. } else {
  517. filePath = `${this.basePath}${this.rmDirFile}/${element}`
  518. }
  519. fileManager.unlink({
  520. filePath: filePath,
  521. success: (res : FileManagerSuccessResult) => {
  522. if (this.logAble) {
  523. this.log += 'unlinkAllFileTest success:' + JSON.stringify(res) + '\n\n'
  524. }
  525. console.log('success unlink', res)
  526. },
  527. fail: (res : IUniError) => {
  528. if (this.logAble) {
  529. this.log += 'unlinkAllFileTest fail:' + JSON.stringify(res) + '\n\n'
  530. }
  531. console.log('fail unlink', res)
  532. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  533. },
  534. complete: (res : any) => {
  535. if (res instanceof UniError) {
  536. this.lastCompleteError = res
  537. }
  538. console.log("complete unlink", res)
  539. this.done = true
  540. }
  541. } as UnLinkOptions)
  542. });
  543. },
  544. fail: (res : IUniError) => {
  545. if (this.logAble) {
  546. this.log += 'unlinkAllFileTest fail:' + JSON.stringify(res) + '\n\n'
  547. }
  548. console.log('fail to readdir', res)
  549. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  550. },
  551. complete: (res : any) => {
  552. console.log("complete readdir", res)
  553. this.done = true
  554. if (res instanceof UniError) {
  555. this.lastCompleteError = res
  556. } else {
  557. this.fileListComplete = (res as ReadDirSuccessResult).files
  558. }
  559. }
  560. } as ReadDirOptions)
  561. },
  562. copyStaticToFilesTest: function () {
  563. const fileManager = uni.getFileSystemManager()
  564. fileManager.copyFile({
  565. srcPath: "/static/list-mock/mock.json",
  566. destPath: `${this.copyToBasePath}/a/mock.json`,
  567. success: (res : FileManagerSuccessResult) => {
  568. if (this.logAble) {
  569. this.log += 'copyFileTest success:' + JSON.stringify(res) + '\n\n'
  570. }
  571. console.log('success', res)
  572. },
  573. fail: (res : IUniError) => {
  574. if (this.logAble) {
  575. this.log += 'copyFileTest fail:' + JSON.stringify(res) + '\n\n'
  576. }
  577. console.log('fail', res)
  578. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  579. },
  580. complete: (res : any) => {
  581. console.log("complete", res)
  582. this.done = true
  583. if (res instanceof UniError) {
  584. this.lastCompleteError = res
  585. }
  586. }
  587. } as CopyFileOptions)
  588. },
  589. //start
  590. appendFileTest: function (_ : any) {
  591. const fileManager = uni.getFileSystemManager()
  592. fileManager.appendFile({
  593. filePath: `${this.basePath}${this.writeFile}`,
  594. data: this.appendFileContent,
  595. encoding: this.writeFileEncoding,
  596. success: (res : FileManagerSuccessResult) => {
  597. if (this.logAble) {
  598. this.log += 'appendFileTest success:' + JSON.stringify(res) + '\n\n'
  599. }
  600. console.log('success', res)
  601. },
  602. fail: (res : IUniError) => {
  603. if (this.logAble) {
  604. this.log += 'appendFileTest fail:' + JSON.stringify(res) + '\n\n'
  605. }
  606. console.log('fail')
  607. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  608. },
  609. complete: (res : any) => {
  610. this.done = true
  611. console.log("complete")
  612. if (res instanceof UniError) {
  613. this.lastCompleteError = res
  614. }
  615. }
  616. } as AppendFileOptions)
  617. },
  618. writeFileSyncTest: function (_ : any) {
  619. try {
  620. const fileManager = uni.getFileSystemManager()
  621. fileManager.writeFileSync(`${this.basePath}${this.writeFile}`, this.writeFileContent, this.writeFileEncoding)
  622. if (this.logAble) {
  623. this.log += 'writeFileSyncTest success:' + '\n\n'
  624. }
  625. this.done = true
  626. } catch (e) {
  627. if (this.logAble) {
  628. this.log += 'writeFileSyncTest fail:' + e + '\n\n'
  629. }
  630. this.done = true
  631. }
  632. },
  633. readFileSyncTest: function () {
  634. try {
  635. const fileManager = uni.getFileSystemManager()
  636. let data = fileManager.readFileSync(
  637. `${this.basePath}${this.readFile}`,
  638. this.readFileEncoding)
  639. if (this.logAble) {
  640. this.log += 'readFileSyncTest result:' + data + '\n\n'
  641. }
  642. this.done = true
  643. this.readFileRet = data.toString()
  644. } catch (e) {
  645. if (this.logAble) {
  646. this.log += 'readFileSyncTest fail:' + e + '\n\n'
  647. }
  648. this.done = true
  649. }
  650. },
  651. unlinkSyncTest: function () {
  652. try {
  653. const fileManager = uni.getFileSystemManager()
  654. fileManager.unlinkSync(
  655. `${this.basePath}${this.unlinkFile}`)
  656. this.done = true
  657. } catch (e) {
  658. if (this.logAble) {
  659. this.log += 'unlinkSyncTest fail:' + e + '\n\n'
  660. }
  661. this.done = true
  662. }
  663. },
  664. mkdirSyncTest: function () {
  665. // 准备测试数据
  666. try {
  667. const fileManager = uni.getFileSystemManager()
  668. fileManager.mkdirSync(`${this.basePath}${this.mkdirFile}`, this.recursiveVal)
  669. this.done = true
  670. } catch (e) {
  671. this.done = true
  672. if (this.logAble) {
  673. this.log += 'mkdirSyncTest fail:' + e + '\n\n'
  674. }
  675. }
  676. },
  677. rmdirSyncTest: function () {
  678. try {
  679. const fileManager = uni.getFileSystemManager()
  680. fileManager.rmdirSync(
  681. `${this.basePath}${this.rmDirFile}`,
  682. this.recursiveVal)
  683. this.done = true
  684. } catch (e) {
  685. if (this.logAble) {
  686. this.log += 'rmdirSyncTest fail:' + e + '\n\n'
  687. }
  688. this.done = true
  689. }
  690. },
  691. readDirSyncTest: function () {
  692. try {
  693. const fileManager = uni.getFileSystemManager()
  694. let res = fileManager.readdirSync(
  695. `${this.basePath}${this.readDir}`)
  696. if (this.logAble) {
  697. this.log += 'readDirTest success:' + JSON.stringify(res) + '\n\n'
  698. }
  699. if (res != null) {
  700. this.fileListSuccess = res
  701. }
  702. this.done = true
  703. } catch (e) {
  704. if (this.logAble) {
  705. this.log += 'rmdirSyncTest fail:' + e + '\n\n'
  706. }
  707. this.done = true
  708. }
  709. },
  710. accessFileSyncTest: function () {
  711. this.accessFileRet = ''
  712. const fileManager = uni.getFileSystemManager()
  713. try {
  714. fileManager.accessSync(`${this.basePath}${this.accessFile}`)
  715. this.done = true
  716. this.accessFileRet = 'access:ok'
  717. } catch (e) {
  718. if (this.logAble) {
  719. this.log += 'rmdirSyncTest fail:' + e + '\n\n'
  720. }
  721. this.done = true
  722. }
  723. },
  724. renameFileSync: function () {
  725. const fileManager = uni.getFileSystemManager()
  726. try {
  727. fileManager.renameSync(`${this.basePath}${this.renameFromFile}`,
  728. `${this.basePath}${this.renameToFile}`)
  729. this.done = true
  730. this.renameFileRet = "rename:ok"
  731. } catch (e) {
  732. if (this.logAble) {
  733. this.log += 'rmdirSyncTest fail:' + e + '\n\n'
  734. }
  735. console.log('renameSync:' + e)
  736. this.done = true
  737. }
  738. },
  739. copyFileSyncTest: function () {
  740. const fileManager = uni.getFileSystemManager()
  741. try {
  742. fileManager.copyFileSync(
  743. `${this.basePath}${this.copyFromFile}`,
  744. `${this.copyToBasePath}${this.copyToFile}`)
  745. this.done = true
  746. } catch (e) {
  747. if (this.logAble) {
  748. this.log += 'rmdirSyncTest fail:' + e + '\n\n'
  749. }
  750. this.done = true
  751. }
  752. },
  753. appendFileSyncTest: function (_ : any) {
  754. const fileManager = uni.getFileSystemManager()
  755. try {
  756. fileManager.appendFileSync(
  757. `${this.basePath}${this.writeFile}`,
  758. this.appendFileContent,
  759. this.writeFileEncoding)
  760. this.done = true
  761. } catch (e) {
  762. if (this.logAble) {
  763. this.log += 'rmdirSyncTest fail:' + e + '\n\n'
  764. }
  765. this.done = true
  766. }
  767. },
  768. saveFileTest: function (_ : any) {
  769. const fileManager = uni.getFileSystemManager()
  770. this.writeFileSyncTest("")
  771. fileManager.saveFile({
  772. tempFilePath: `${this.basePath}${this.temFile}`,
  773. success: (res : SaveFileSuccessResult) => {
  774. if (this.logAble) {
  775. this.log += 'saveFileTest success:' + JSON.stringify(res) + '\n\n'
  776. }
  777. console.log('success', res)
  778. this.saveFileRet = res.savedFilePath
  779. this.done = true
  780. },
  781. fail: (res : IUniError) => {
  782. if (this.logAble) {
  783. this.log += 'saveFileTest fail:' + JSON.stringify(res) + '\n\n'
  784. }
  785. console.log('saveFileTest fail', res)
  786. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  787. this.done = true
  788. },
  789. complete: (_) => {
  790. this.done = true
  791. }
  792. } as SaveFileOptions)
  793. },
  794. saveFileTest1: function (_ : any) {
  795. const fileManager = uni.getFileSystemManager()
  796. this.writeFileSyncTest("")
  797. fileManager.access({
  798. path: `${this.basePath}local`,
  799. success: () => {
  800. if (fileManager.fstatSync({ fd: fileManager.openSync({ filePath: `${this.basePath}local`, flag: "r" }) }).isDirectory()) {
  801. fileManager.rmdirSync(`${this.basePath}local`, true)
  802. } else {
  803. fileManager.unlinkSync(`${this.basePath}local`)
  804. }
  805. fileManager.saveFile({
  806. tempFilePath: `${this.basePath}${this.temFile}`,
  807. filePath: `${this.basePath}local/1.txt`,
  808. success: (res : SaveFileSuccessResult) => {
  809. if (this.logAble) {
  810. this.log += 'saveFileTest success:' + JSON.stringify(res) + '\n\n'
  811. }
  812. console.log('success', res)
  813. this.saveFileRet = res.savedFilePath
  814. this.done = true
  815. },
  816. fail: (res : IUniError) => {
  817. if (this.logAble) {
  818. this.log += 'saveFileTest fail:' + JSON.stringify(res) + '\n\n'
  819. }
  820. console.log('saveFileTest fail', res)
  821. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  822. this.done = true
  823. },
  824. complete: (_) => {
  825. this.done = true
  826. }
  827. } as SaveFileOptions)
  828. },
  829. fail: () => {
  830. fileManager.saveFile({
  831. tempFilePath: `${this.basePath}${this.temFile}`,
  832. filePath: `${this.basePath}local/1.txt`,
  833. success: (res : SaveFileSuccessResult) => {
  834. if (this.logAble) {
  835. this.log += 'saveFileTest success:' + JSON.stringify(res) + '\n\n'
  836. }
  837. console.log('success', res)
  838. this.saveFileRet = res.savedFilePath
  839. this.done = true
  840. },
  841. fail: (res : IUniError) => {
  842. if (this.logAble) {
  843. this.log += 'saveFileTest fail:' + JSON.stringify(res) + '\n\n'
  844. }
  845. console.log('saveFileTest fail', res)
  846. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  847. this.done = true
  848. },
  849. complete: (_) => {
  850. this.done = true
  851. }
  852. } as SaveFileOptions)
  853. }
  854. })
  855. },
  856. saveFileTest2: function (_ : any) {
  857. const fileManager = uni.getFileSystemManager()
  858. this.writeFileSyncTest("")
  859. fileManager.access({
  860. path: `${this.basePath}local`,
  861. success: () => {
  862. if (fileManager.fstatSync({ fd: fileManager.openSync({ filePath: `${this.basePath}local`, flag: "r" }) }).isDirectory()) {
  863. fileManager.rmdirSync(`${this.basePath}local`, true)
  864. } else {
  865. fileManager.unlinkSync(`${this.basePath}local`)
  866. }
  867. fileManager.saveFile({
  868. tempFilePath: `${this.basePath}${this.temFile}`,
  869. filePath: `${this.basePath}local`,
  870. success: (res : SaveFileSuccessResult) => {
  871. if (this.logAble) {
  872. this.log += 'saveFileTest success:' + JSON.stringify(res) + '\n\n'
  873. }
  874. console.log('success', res)
  875. this.saveFileRet = res.savedFilePath
  876. this.done = true
  877. },
  878. fail: (res : IUniError) => {
  879. if (this.logAble) {
  880. this.log += 'saveFileTest fail:' + JSON.stringify(res) + '\n\n'
  881. }
  882. console.log('saveFileTest fail', res)
  883. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  884. this.done = true
  885. },
  886. complete: (_) => {
  887. this.done = true
  888. }
  889. } as SaveFileOptions)
  890. }
  891. })
  892. },
  893. saveFileTest3: function (_ : any) {
  894. const fileManager = uni.getFileSystemManager()
  895. this.writeFileSyncTest("")
  896. fileManager.access({
  897. path: `${this.basePath}local`,
  898. success: () => {
  899. if (fileManager.fstatSync({ fd: fileManager.openSync({ filePath: `${this.basePath}local`, flag: "r" }) }).isDirectory()) {
  900. fileManager.rmdirSync(`${this.basePath}local`, true)
  901. } else {
  902. fileManager.unlinkSync(`${this.basePath}local`)
  903. }
  904. fileManager.saveFile({
  905. tempFilePath: `${this.basePath}${this.temFile}`,
  906. filePath: `${this.basePath}local/`,
  907. success: (res : SaveFileSuccessResult) => {
  908. if (this.logAble) {
  909. this.log += 'saveFileTest success:' + JSON.stringify(res) + '\n\n'
  910. }
  911. console.log('success', res)
  912. this.saveFileRet = res.savedFilePath
  913. this.done = true
  914. },
  915. fail: (res : IUniError) => {
  916. if (this.logAble) {
  917. this.log += 'saveFileTest fail:' + JSON.stringify(res) + '\n\n'
  918. }
  919. console.log('saveFileTest fail', res)
  920. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  921. this.done = true
  922. },
  923. complete: (_) => {
  924. this.done = true
  925. }
  926. } as SaveFileOptions)
  927. }
  928. })
  929. },
  930. saveFileSyncTest: function (_ : any) {
  931. const fileManager = uni.getFileSystemManager()
  932. this.writeFileSyncTest("")
  933. try {
  934. fileManager.saveFileSync(
  935. `${this.basePath}${this.temFile}`, null)
  936. this.done = true
  937. //todo 后面打开
  938. // this.saveFileRet=res
  939. } catch (e) {
  940. console.log('saveFileSyncTest:' + e)
  941. this.done = true
  942. }
  943. },
  944. unzipFileTest: function (_ : any) {
  945. const fileManager = uni.getFileSystemManager()
  946. try {
  947. fileManager.mkdirSync(`${this.basePath}${this.targetZip}`, true)
  948. } catch (e) {
  949. console.error(e)
  950. }
  951. fileManager.unzip({
  952. zipFilePath: '/static/filemanager/to.zip',
  953. targetPath: `${this.basePath}${this.targetZip}`,
  954. success: (res : FileManagerSuccessResult) => {
  955. if (this.logAble) {
  956. this.log += 'unzipFileTest success:' + JSON.stringify(res) + '\n\n'
  957. }
  958. console.log('success', res)
  959. },
  960. fail: (res : IUniError) => {
  961. if (this.logAble) {
  962. this.log += 'unzipFileTest fail:' + JSON.stringify(res) + '\n\n'
  963. }
  964. console.log('fail', res)
  965. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  966. },
  967. complete: (_) => {
  968. this.done = true
  969. }
  970. } as UnzipFileOptions)
  971. },
  972. getSavedFileListTest: function () {
  973. const fileManager = uni.getFileSystemManager()
  974. fileManager.getSavedFileList({
  975. success: (res : GetSavedFileListResult) => {
  976. if (this.logAble) {
  977. this.log += 'getSavedFileListTest success:' + JSON.stringify(res) + '\n\n'
  978. }
  979. console.log("getSavedFileListTest success", res)
  980. this.fileListSuccess = res.fileList
  981. this.getSavedFileListRet = "getSavedFileList:ok"
  982. },
  983. fail: (res : IUniError) => {
  984. if (this.logAble) {
  985. this.log += 'getSavedFileListTest fail:' + JSON.stringify(res) + '\n\n'
  986. }
  987. console.log('getSavedFileListTest fail', res)
  988. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  989. this.getSavedFileListRet = JSON.stringify(res)
  990. },
  991. complete: (res : any) => {
  992. console.log("complete", res)
  993. this.done = true
  994. if (res instanceof UniError) {
  995. this.lastCompleteError = res
  996. } else {
  997. this.fileListComplete = (res as GetSavedFileListResult).fileList
  998. }
  999. }
  1000. } as GetSavedFileListOptions)
  1001. },
  1002. truncateFileTest() {
  1003. const fileManager = uni.getFileSystemManager()
  1004. fileManager.truncate({
  1005. filePath: `${this.basePath}${this.writeFile}`,
  1006. length: 6,
  1007. success: (res : FileManagerSuccessResult) => {
  1008. if (this.logAble) {
  1009. this.log += 'truncateFileTest success:' + JSON.stringify(res) + '\n\n'
  1010. }
  1011. console.log("success", res)
  1012. },
  1013. fail: (res : IUniError) => {
  1014. if (this.logAble) {
  1015. this.log += 'truncateFileTest fail:' + JSON.stringify(res) + '\n\n'
  1016. }
  1017. console.log('fail', res)
  1018. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  1019. },
  1020. complete: (res : any) => {
  1021. console.log("complete", res)
  1022. this.done = true
  1023. if (res instanceof UniError) {
  1024. this.lastCompleteError = res
  1025. }
  1026. }
  1027. } as TruncateFileOptions)
  1028. },
  1029. truncateFileSyncTest() {
  1030. const fileManager = uni.getFileSystemManager()
  1031. try {
  1032. fileManager.truncateSync(
  1033. `${this.basePath}${this.writeFile}`,
  1034. 3)
  1035. this.done = true
  1036. } catch (e) {
  1037. console.log(e)
  1038. this.done = true
  1039. }
  1040. },
  1041. readCompressedFileTest() {
  1042. const fileManager = uni.getFileSystemManager()
  1043. fileManager.readCompressedFile({
  1044. filePath: '/static/filemanager/1.txt.br',
  1045. compressionAlgorithm: "br",
  1046. success: (res : ReadCompressedFileResult) => {
  1047. if (this.logAble) {
  1048. this.log += 'readCompressedFileTest success:' + JSON.stringify(res) + '\n\n'
  1049. }
  1050. console.log("success", res)
  1051. },
  1052. fail: (res : IUniError) => {
  1053. if (this.logAble) {
  1054. this.log += 'readCompressedFileTest fail:' + JSON.stringify(res) + '\n\n'
  1055. }
  1056. console.log('fail', res)
  1057. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  1058. },
  1059. complete: (_) => {
  1060. this.done = true
  1061. }
  1062. } as ReadCompressedFileOptions)
  1063. },
  1064. readCompressedFileSyncTest() {
  1065. console.log('readCompressedFileSyncTest')
  1066. const fileManager = uni.getFileSystemManager()
  1067. try {
  1068. let data = fileManager.readCompressedFileSync(
  1069. '/static/filemanager/1.txt.br',
  1070. "br")
  1071. if (this.logAble) {
  1072. this.log += data
  1073. }
  1074. this.done = true
  1075. } catch (e) {
  1076. if (this.logAble) {
  1077. this.log += 'readCompressedFileSyncTest fail:' + e + '\n\n'
  1078. }
  1079. this.done = true
  1080. }
  1081. },
  1082. removeSavedFileTest() {
  1083. console.log("removeSavedFileTest enter")
  1084. const fileManager = uni.getFileSystemManager()
  1085. fileManager.removeSavedFile({
  1086. filePath: `${this.basePath}${this.writeFile}`,
  1087. success: (res : FileManagerSuccessResult) => {
  1088. if (this.logAble) {
  1089. this.log += 'removeSavedFileTest success:' + JSON.stringify(res) + '\n\n'
  1090. }
  1091. this.removeSavedFileRet = res.errMsg
  1092. console.log("removeSavedFileTest success", res)
  1093. },
  1094. fail: (res : IUniError) => {
  1095. if (this.logAble) {
  1096. this.log += 'removeSavedFileTest fail:' + JSON.stringify(res) + '\n\n'
  1097. }
  1098. console.log('removeSavedFileTest fail', res)
  1099. },
  1100. complete: (_) => {
  1101. this.done = true
  1102. }
  1103. } as RemoveSavedFileOptions)
  1104. },
  1105. statFileInfoSyncTest: function (_ : any) {
  1106. const fileManager = uni.getFileSystemManager()
  1107. try {
  1108. let res = fileManager.statSync(
  1109. // path: `${this.basePath}${this.statFile}`, //USER_DATA_PATH
  1110. `${this.globalTempPath}${this.statFile}`, //CACHE_PATH
  1111. this.recursiveVal)
  1112. if (this.logAble) {
  1113. this.log += 'statFileInfoSyncTest success:' + JSON.stringify(res) + '\n\n'
  1114. }
  1115. this.statsRet = res
  1116. this.done = true
  1117. } catch (e) {
  1118. if (this.logAble) {
  1119. this.log += 'statFileInfoSyncTest fail:' + e + '\n\n'
  1120. }
  1121. this.done = true
  1122. }
  1123. },
  1124. openFileTest() {
  1125. const fileManager = uni.getFileSystemManager()
  1126. fileManager.open({
  1127. filePath: `${this.basePath}${this.readFile}`,
  1128. flag: "a",
  1129. success: (res : OpenFileSuccessResult) => {
  1130. if (this.logAble) {
  1131. this.log += 'openFileTest success:' + JSON.stringify(res) + '\n\n'
  1132. }
  1133. console.log("success", res)
  1134. this.fd = res.fd
  1135. },
  1136. fail: (res : IUniError) => {
  1137. if (this.logAble) {
  1138. this.log += 'openFileTest fail:' + JSON.stringify(res) + '\n\n'
  1139. }
  1140. console.log('fail', res)
  1141. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  1142. },
  1143. complete: (_) => {
  1144. this.done = true
  1145. }
  1146. } as OpenFileOptions)
  1147. },
  1148. openFileSyncTest(param : string, isTest : boolean) : string {
  1149. const fileManager = uni.getFileSystemManager()
  1150. try {
  1151. let fd = fileManager.openSync({
  1152. filePath: `${this.basePath}${this.readFile}`,
  1153. flag: param,
  1154. } as OpenFileSyncOptions)
  1155. if (this.logAble && isTest) {
  1156. this.log += 'openFileSyncTest success:' + fd + '\n\n'
  1157. }
  1158. if (isTest) {
  1159. this.done = true
  1160. }
  1161. this.fd = fd
  1162. return fd
  1163. } catch (e) {
  1164. if (this.logAble) {
  1165. this.log += 'openFileSyncTest fail:' + JSON.stringify(e) + '\n\n'
  1166. }
  1167. console.log('fail', e)
  1168. this.done = true
  1169. }
  1170. return ""
  1171. },
  1172. closeSyncTest() {
  1173. console.log('closeSyncTest')
  1174. const fileManager = uni.getFileSystemManager()
  1175. try {
  1176. console.log('closeSync')
  1177. fileManager.closeSync({
  1178. fd: this.openFileSyncTest('r', false)
  1179. } as CloseSyncOptions)
  1180. if (this.logAble) {
  1181. this.log += 'closeSyncTest success:' + '\n\n'
  1182. }
  1183. this.done = true
  1184. this.closeFileRet = "close:ok"
  1185. } catch (e) {
  1186. if (this.logAble) {
  1187. this.log += 'closeSyncTest fail:' + JSON.stringify(e) + '\n\n'
  1188. }
  1189. console.log('fail', e)
  1190. this.done = true
  1191. }
  1192. },
  1193. closeTest() {
  1194. const fileManager = uni.getFileSystemManager()
  1195. fileManager.close({
  1196. fd: this.openFileSyncTest('r', false),
  1197. success: (res : FileManagerSuccessResult) => {
  1198. if (this.logAble) {
  1199. this.log += 'closeTest success:' + JSON.stringify(res) + '\n\n'
  1200. }
  1201. this.closeFileRet = res.errMsg
  1202. console.log("success", res)
  1203. },
  1204. fail: (res : IUniError) => {
  1205. if (this.logAble) {
  1206. this.log += 'closeTest fail:' + JSON.stringify(res) + '\n\n'
  1207. }
  1208. console.log('fail', res)
  1209. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  1210. },
  1211. complete: (_) => {
  1212. this.done = true
  1213. }
  1214. } as CloseOptions)
  1215. },
  1216. writeTest() {
  1217. const fileManager = uni.getFileSystemManager()
  1218. try {
  1219. fileManager.mkdirSync(`${this.basePath}${this.mkdirFile}`, true)
  1220. } catch (e) {
  1221. console.error(e)
  1222. }
  1223. fileManager.write({
  1224. fd: this.openFileSyncTest('w+', false),
  1225. data: this.writeData,
  1226. encoding: "utf-8",
  1227. success: (res : WriteResult) => {
  1228. if (this.logAble) {
  1229. this.log += 'writeTest success:' + JSON.stringify(res) + '\n\n'
  1230. }
  1231. console.log("success", res)
  1232. this.bytesWritten = res.bytesWritten
  1233. this.lastFailError = new UniError('uni-fileSystemManager', 0, 'writeTest success:' + JSON.stringify(res))
  1234. },
  1235. fail: (res : IUniError) => {
  1236. if (this.logAble) {
  1237. this.log += 'writeTest fail:' + JSON.stringify(res) + '\n\n'
  1238. }
  1239. console.log('fail', res)
  1240. this.lastFailError = new UniError(res.errSubject, res.errCode, 'writeTest:' + res.errMsg)
  1241. },
  1242. complete: (_) => {
  1243. this.done = true
  1244. }
  1245. } as WriteOptions)
  1246. },
  1247. writeSyncTest() {
  1248. const fileManager = uni.getFileSystemManager()
  1249. try {
  1250. fileManager.mkdirSync(`${this.basePath}${this.mkdirFile}`, true)
  1251. } catch (e) {
  1252. console.error(e)
  1253. }
  1254. fileManager.open({
  1255. filePath: `${this.basePath}${this.readFile}`,
  1256. flag: "r+",
  1257. success: (res : OpenFileSuccessResult) => {
  1258. console.log("success", res)
  1259. if (res.fd.length <= 0) {
  1260. this.done = true
  1261. return
  1262. }
  1263. try {
  1264. let ret = fileManager.writeSync({
  1265. fd: res.fd,
  1266. data: this.writeData,
  1267. encoding: "utf-8"
  1268. } as WriteSyncOptions)
  1269. if (this.logAble) {
  1270. this.log += 'writeSyncTest success:' + JSON.stringify(ret) + '\n\n'
  1271. }
  1272. console.log("success", ret)
  1273. this.done = true
  1274. this.bytesWritten = ret.bytesWritten
  1275. } catch (e) {
  1276. if (this.logAble) {
  1277. this.log += 'writeSyncTest fail:' + JSON.stringify(e) + '\n\n'
  1278. }
  1279. console.log('fail', e)
  1280. this.done = true
  1281. }
  1282. },
  1283. fail: (res : IUniError) => {
  1284. if (this.logAble) {
  1285. this.log += 'openFileTest fail:' + JSON.stringify(res) + '\n\n'
  1286. }
  1287. console.log('fail', res)
  1288. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  1289. this.done = true
  1290. }
  1291. } as OpenFileOptions)
  1292. },
  1293. fstatTest() {
  1294. const fileManager = uni.getFileSystemManager()
  1295. fileManager.fstat({
  1296. fd: this.openFileSyncTest('r', false),
  1297. success: (res : FStatSuccessResult) => {
  1298. if (this.logAble) {
  1299. this.log += 'fstatTest success:' + JSON.stringify(res) + '\n\n'
  1300. }
  1301. console.log("success", res)
  1302. this.fstat = res.stats
  1303. this.fstatSize = res.stats.size
  1304. },
  1305. fail: (res : IUniError) => {
  1306. if (this.logAble) {
  1307. this.log += 'fstatTest fail:' + JSON.stringify(res) + '\n\n'
  1308. }
  1309. console.log('fail', res)
  1310. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  1311. },
  1312. complete: (_) => {
  1313. this.done = true
  1314. }
  1315. } as FStatOptions)
  1316. },
  1317. fstatSyncTest() {
  1318. const fileManager = uni.getFileSystemManager()
  1319. try {
  1320. let stat =
  1321. fileManager.fstatSync({
  1322. fd: this.openFileSyncTest('r', false),
  1323. } as FStatSyncOptions)
  1324. if (this.logAble) {
  1325. this.log += 'fstatSyncTest success:' + JSON.stringify(stat) + '\n\n'
  1326. }
  1327. this.done = true
  1328. this.fstat = stat
  1329. this.fstatSize = stat.size
  1330. } catch (e) {
  1331. if (this.logAble) {
  1332. this.log += 'fstatSyncTest fail:' + JSON.stringify(e) + '\n\n'
  1333. }
  1334. this.done = true
  1335. }
  1336. },
  1337. ftruncateFileTest() {
  1338. const fileManager = uni.getFileSystemManager()
  1339. fileManager.ftruncate({
  1340. fd: this.openFileSyncTest('r+', false),
  1341. length: 6,
  1342. success: (res : FileManagerSuccessResult) => {
  1343. if (this.logAble) {
  1344. this.log += 'ftruncateFileTest success:' + JSON.stringify(res) + '\n\n'
  1345. }
  1346. this.ftruncateRet = res.errMsg
  1347. },
  1348. fail: (res : IUniError) => {
  1349. if (this.logAble) {
  1350. this.log += 'ftruncateFileTest fail:' + JSON.stringify(res) + '\n\n'
  1351. }
  1352. console.log('fail', res)
  1353. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  1354. },
  1355. complete: (res : any) => {
  1356. console.log("complete", res)
  1357. this.done = true
  1358. if (res instanceof UniError) {
  1359. this.lastCompleteError = res
  1360. }
  1361. }
  1362. } as FTruncateFileOptions)
  1363. },
  1364. ftruncateFileSyncTest() {
  1365. const fileManager = uni.getFileSystemManager()
  1366. try {
  1367. fileManager.ftruncateSync({
  1368. fd: this.openFileSyncTest('r+', false),
  1369. length: 4
  1370. } as FTruncateFileSyncOptions)
  1371. if (this.logAble) {
  1372. this.log += 'ftruncateFileSyncTest success:' + '\n\n'
  1373. }
  1374. this.done = true
  1375. this.ftruncateRet = 'ftruncate:ok'
  1376. } catch (e) {
  1377. if (this.logAble) {
  1378. this.log += 'ftruncateFileSyncTest fail:' + JSON.stringify(e) + '\n\n'
  1379. }
  1380. this.done = true
  1381. }
  1382. },
  1383. readZipEntry() {
  1384. const fileManager = uni.getFileSystemManager()
  1385. fileManager.readZipEntry({
  1386. filePath: '/static/filemanager/to.zip',
  1387. encoding: 'utf-8',
  1388. success: (res : EntriesResult) => {
  1389. if (this.logAble) {
  1390. this.log += 'readZipEntry success:size=' + res.result + '\n\n'
  1391. }
  1392. console.log("success", res)
  1393. },
  1394. fail: (res : IUniError) => {
  1395. if (this.logAble) {
  1396. this.log += 'readZipEntry fail:' + JSON.stringify(res) + '\n\n'
  1397. }
  1398. console.log('fail', res)
  1399. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  1400. }
  1401. } as ReadZipEntryOptions)
  1402. },
  1403. testWriteReadFileBuffer() {
  1404. const fs = uni.getFileSystemManager()
  1405. let buffer = new ArrayBuffer(16)
  1406. let float64 = new Float64Array(buffer)
  1407. float64[1] = 1.2222222
  1408. let that = this
  1409. fs.writeFile({
  1410. filePath: `${uni.env.USER_DATA_PATH}/hello.txt`,
  1411. // data: 'test some',
  1412. data: buffer,
  1413. // encoding: 'ascii',
  1414. success: (res) => {
  1415. if (this.logAble) {
  1416. this.log += 'testWriteReadFileBuffer :' + res.errMsg + '\n\n'
  1417. }
  1418. console.log(res)
  1419. // that.testAppendFile()
  1420. that.testReadFileBuffer()
  1421. },
  1422. fail: (res) => {
  1423. if (this.logAble) {
  1424. this.log += 'testWriteReadFileBuffer fail:' + JSON.stringify(res) + '\n\n'
  1425. }
  1426. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  1427. console.error(res)
  1428. this.done = true
  1429. },
  1430. complete: (_ : any) => {
  1431. }
  1432. } as WriteFileOptions)
  1433. },
  1434. testReadFileBuffer() {
  1435. const fs = uni.getFileSystemManager()
  1436. fs.readFile({
  1437. filePath: `${uni.env.USER_DATA_PATH}/hello.txt`,
  1438. success: (res) => {
  1439. console.log(res)
  1440. // let uint8Array = new Uint8Array(res.data as ArrayBuffer)
  1441. // for (let i = 0; i < uint8Array.length; i++) {
  1442. // console.log(`Byte ${i}: ${uint8Array[i]}`);
  1443. // }
  1444. let float64 = new Float64Array(res.data as ArrayBuffer)
  1445. if (this.logAble) {
  1446. for (let i = 0; i < float64.length; i++) {
  1447. if (this.logAble) {
  1448. this.log += 'testReadFileBuffer success :' + `Byte ${i}: ${float64[i]}` + '\n\n'
  1449. }
  1450. }
  1451. }
  1452. this.arrayBufferRes = float64[1] //1.2222222
  1453. console.log(this.arrayBufferRes)
  1454. },
  1455. fail: (res) => {
  1456. if (this.logAble) {
  1457. this.log += 'testReadFileBuffer fail:' + JSON.stringify(res) + '\n\n'
  1458. }
  1459. this.lastFailError = new UniError(res.errSubject, res.errCode, res.errMsg)
  1460. console.error(res)
  1461. },
  1462. complete: (res : any) => {
  1463. console.log("complete", res)
  1464. this.done = true
  1465. if (res instanceof UniError) {
  1466. this.lastCompleteError = res
  1467. }
  1468. }
  1469. } as ReadFileOptions)
  1470. },
  1471. testWriteReadFileSyncBuffer() {
  1472. try {
  1473. const fs = uni.getFileSystemManager()
  1474. let buffer = new ArrayBuffer(16)
  1475. // let int8 = new Int8Array(buffer)
  1476. // int8[1] = 20
  1477. let float64 = new Float64Array(buffer)
  1478. float64[1] = 1.333
  1479. fs.writeFileSync(`${uni.env.USER_DATA_PATH}/hello.txt`, buffer, 'utf-8')
  1480. if (this.logAble) {
  1481. this.log += 'testWriteReadFileSyncBuffer success' + '\n\n'
  1482. }
  1483. this.testReadFileSyncBuffer()
  1484. this.done = true
  1485. } catch (e) {
  1486. if (this.logAble) {
  1487. this.log += 'testWriteReadFileSyncBuffer fail:' + JSON.stringify(e) + '\n\n'
  1488. }
  1489. this.done = true
  1490. }
  1491. },
  1492. testReadFileSyncBuffer() {
  1493. try {
  1494. const fs = uni.getFileSystemManager()
  1495. let res = fs.readFileSync(`${uni.env.USER_DATA_PATH}/hello.txt`, null)
  1496. console.log(res)
  1497. let float64 = new Float64Array(res as ArrayBuffer)
  1498. for (let i = 0; i < float64.length; i++) {
  1499. if (this.logAble) {
  1500. this.log += 'testReadFileSyncBuffer success:' + `Byte ${i}: ${float64[i]}` + '\n\n'
  1501. }
  1502. console.log(`Byte ${i}: ${float64[i]}`);
  1503. }
  1504. this.arrayBufferRes = float64[1] // 1.333
  1505. console.log(this.arrayBufferRes)
  1506. } catch (e) {
  1507. if (this.logAble) {
  1508. this.log += 'testReadFileSyncBuffer fail:' + JSON.stringify(e) + '\n\n'
  1509. }
  1510. this.done = true
  1511. }
  1512. },
  1513. testWriteReadBuffer() {
  1514. const fileManager = uni.getFileSystemManager()
  1515. try {
  1516. fileManager.mkdirSync(`${this.basePath}${this.mkdirFile}`, true)
  1517. } catch (e) {
  1518. console.error(e)
  1519. }
  1520. let buffer = new ArrayBuffer(24)
  1521. let float64 = new Float64Array(buffer)
  1522. float64[1] = 1.24
  1523. float64[2] = 1.33
  1524. fileManager.write({
  1525. fd: this.openFileSyncTest('w+', false),
  1526. length: 16,
  1527. offset: 8,
  1528. data: buffer,
  1529. position: 10,
  1530. success: (res : WriteResult) => {
  1531. console.log("success", res)
  1532. const ab = new ArrayBuffer(24)
  1533. fileManager.read({
  1534. arrayBuffer: ab,
  1535. fd: this.openFileSyncTest('a+', false),
  1536. length: 8,
  1537. position: 10,
  1538. success: (res : ReadSuccessCallbackResult) => {
  1539. console.log(res)
  1540. let value = new Float64Array(res.arrayBuffer)
  1541. for (let i = 0; i < value.length; i++) {
  1542. console.log(`Byte ${i}: ${value[i]}`);
  1543. if (this.logAble) {
  1544. this.log += 'testWriteReadBuffer success:' + `Byte ${i}: ${value[i]}` + '\n\n'
  1545. }
  1546. }
  1547. this.arrayBufferRes = value[0] //1.24
  1548. console.log(this.arrayBufferRes)
  1549. },
  1550. fail: (res) => {
  1551. console.log(res)
  1552. this.done = true
  1553. if (res instanceof UniError) {
  1554. this.lastCompleteError = res
  1555. }
  1556. },
  1557. complete: (res : any) => {
  1558. console.log("complete", res)
  1559. this.done = true
  1560. if (res instanceof UniError) {
  1561. this.lastCompleteError = res
  1562. }
  1563. }
  1564. } as ReadOption)
  1565. },
  1566. fail: (res : IUniError) => {
  1567. this.done = true
  1568. if (res instanceof UniError) {
  1569. this.lastCompleteError = res
  1570. }
  1571. },
  1572. complete: (_) => {
  1573. }
  1574. } as WriteOptions)
  1575. },
  1576. testWriteReadSyncBuffer() {
  1577. const fileManager = uni.getFileSystemManager()
  1578. try {
  1579. fileManager.mkdirSync(`${this.basePath}${this.mkdirFile}`, true)
  1580. } catch (e) {
  1581. }
  1582. try {
  1583. let buffer = new ArrayBuffer(24)
  1584. let float64 = new Float64Array(buffer)
  1585. float64[1] = 1.11
  1586. float64[2] = 1.33
  1587. let ret = fileManager.writeSync({
  1588. fd: this.openFileSyncTest('w+', false),
  1589. // data: this.writeData,
  1590. data: buffer,
  1591. length: 16,
  1592. offset: 8,
  1593. position: 10,
  1594. encoding: "utf-8"
  1595. } as WriteSyncOptions)
  1596. console.log("success", ret)
  1597. const ab = new ArrayBuffer(24)
  1598. let res = fileManager.readSync({
  1599. arrayBuffer: ab,
  1600. fd: this.openFileSyncTest('a+', false),
  1601. length: 8,
  1602. offset: 8,
  1603. position: 10
  1604. } as ReadSyncOption)
  1605. console.log(res)
  1606. let value = new Float64Array(res.arrayBuffer)
  1607. for (let i = 0; i < value.length; i++) {
  1608. if (this.logAble) {
  1609. this.log += 'testWriteReadSyncBuffer success :' + `Byte ${i}: ${value[i]}` + '\n\n'
  1610. }
  1611. }
  1612. this.done = true
  1613. this.arrayBufferRes = float64[1] //1.11
  1614. console.log(this.arrayBufferRes)
  1615. } catch (e) {
  1616. this.done = true
  1617. console.error(e)
  1618. }
  1619. },
  1620. testAppendFileBufferSync() {
  1621. // 同步接口
  1622. const fs = uni.getFileSystemManager()
  1623. try {
  1624. let buffer = new ArrayBuffer(24)
  1625. let float64 = new Float64Array(buffer)
  1626. float64[1] = 1.2222222
  1627. float64[2] = 1.33
  1628. let ret = fs.writeSync({
  1629. fd: fs.openSync({ filePath: `${uni.env.USER_DATA_PATH}/hello.txt`, flag: 'w+' } as OpenFileSyncOptions),
  1630. data: buffer,
  1631. length: 16,
  1632. offset: 8,
  1633. position: 10
  1634. } as WriteSyncOptions)
  1635. console.log(ret)
  1636. buffer = new ArrayBuffer(16)
  1637. float64 = new Float64Array(buffer)
  1638. float64[0] = 20
  1639. fs.appendFileSync(`${uni.env.USER_DATA_PATH}/hello.txt`, buffer, null)
  1640. const ab = new ArrayBuffer(32)
  1641. // 打开文件
  1642. // 读取文件到 ArrayBuffer 中
  1643. let readResult = fs.readSync({
  1644. fd: fs.openSync({
  1645. filePath: `${uni.env.USER_DATA_PATH}/hello.txt`,
  1646. flag: 'a+',
  1647. } as OpenFileSyncOptions),
  1648. arrayBuffer: ab,
  1649. length: 24,
  1650. position: 10,
  1651. offset: 8
  1652. } as ReadSyncOption)
  1653. console.log(readResult)
  1654. float64 = new Float64Array(readResult.arrayBuffer)
  1655. for (let i = 0; i < float64.length; i++) {
  1656. if (this.logAble) {
  1657. this.log += 'testAppendFileBufferSync success :' + `Byte ${i}: ${float64[i]}` + '\n\n'
  1658. }
  1659. console.log(`Byte ${i}: ${float64[i]}`);
  1660. }
  1661. this.arrayBufferRes = float64[3] //20
  1662. console.log(this.arrayBufferRes)
  1663. this.done = true
  1664. } catch (e) {
  1665. this.done = true
  1666. if (this.logAble) {
  1667. this.log += 'testAppendFileBufferSync fail:' + JSON.stringify(e) + '\n\n'
  1668. }
  1669. console.error(e)
  1670. }
  1671. },
  1672. testAppendFileBuffer() {
  1673. // 同步接口
  1674. const fs = uni.getFileSystemManager()
  1675. try {
  1676. let buffer = new ArrayBuffer(24)
  1677. let float64 = new Float64Array(buffer)
  1678. float64[1] = 1.2222222
  1679. float64[2] = 1.33
  1680. let ret = fs.writeSync({
  1681. fd: fs.openSync({ filePath: `${uni.env.USER_DATA_PATH}/hello.txt`, flag: 'w+' } as OpenFileSyncOptions),
  1682. data: buffer,
  1683. length: 16,
  1684. offset: 8,
  1685. position: 10
  1686. } as WriteSyncOptions)
  1687. console.log(ret)
  1688. buffer = new ArrayBuffer(16)
  1689. float64 = new Float64Array(buffer)
  1690. float64[0] = 21
  1691. fs.appendFile({
  1692. filePath: `${uni.env.USER_DATA_PATH}/hello.txt`,
  1693. data: buffer,
  1694. success: (res) => {
  1695. console.log(res)
  1696. const ab = new ArrayBuffer(32)
  1697. // 打开文件
  1698. // 读取文件到 ArrayBuffer 中
  1699. let readResult = fs.readSync({
  1700. fd: fs.openSync({
  1701. filePath: `${uni.env.USER_DATA_PATH}/hello.txt`,
  1702. flag: 'a+',
  1703. } as OpenFileSyncOptions),
  1704. arrayBuffer: ab,
  1705. length: 24,
  1706. position: 10,
  1707. offset: 8
  1708. } as ReadSyncOption)
  1709. console.log(readResult)
  1710. float64 = new Float64Array(readResult.arrayBuffer)
  1711. for (let i = 0; i < float64.length; i++) {
  1712. console.log(`Byte ${i}: ${float64[i]}`);
  1713. if (this.logAble) {
  1714. this.log += 'testAppendFileBuffer success :' + `Byte ${i}: ${float64[i]}` + '\n\n'
  1715. }
  1716. }
  1717. this.arrayBufferRes = float64[3] //21
  1718. console.log(this.arrayBufferRes)
  1719. },
  1720. fail: (res) => {
  1721. console.log(res)
  1722. },
  1723. complete: (_) => {
  1724. this.done = true
  1725. }
  1726. } as AppendFileOptions)
  1727. } catch (e) {
  1728. this.done = true
  1729. if (this.logAble) {
  1730. this.log += 'testAppendFileBufferSync fail:' + JSON.stringify(e) + '\n\n'
  1731. }
  1732. console.error(e)
  1733. }
  1734. },
  1735. // #ifdef APP
  1736. testReadFileEncoding(encoding : string) {
  1737. console.log('testEncoding', encoding)
  1738. uni.chooseImage({
  1739. count: 1,
  1740. albumMode: "system",
  1741. sizeType: ["original"],
  1742. sourceType: ["album"],
  1743. success: (e) => {
  1744. console.log(e.tempFilePaths[0])
  1745. uni.getFileSystemManager().readFile({
  1746. filePath: e.tempFilePaths[0],
  1747. encoding: encoding,
  1748. success: (res) => {
  1749. console.log('success:', (res.data as string).length)
  1750. }
  1751. })
  1752. }
  1753. })
  1754. },
  1755. testReadFileArrayBuffer() {
  1756. uni.chooseImage({
  1757. count: 1,
  1758. albumMode: "system",
  1759. sizeType: ["original"],
  1760. sourceType: ["album"],
  1761. success: (e) => {
  1762. console.log(e.tempFilePaths[0])
  1763. uni.getFileSystemManager().readFile({
  1764. filePath: e.tempFilePaths[0],
  1765. success: (res) => {
  1766. console.log('success:', (res.data as ArrayBuffer).byteLength)
  1767. }
  1768. })
  1769. }
  1770. })
  1771. },
  1772. testReadFileSyncEncoding(encoding : string) {
  1773. console.log('testEncoding', encoding)
  1774. uni.chooseImage({
  1775. count: 1,
  1776. albumMode: "system",
  1777. sizeType: ["original"],
  1778. sourceType: ["album"],
  1779. success: (e) => {
  1780. console.log(e.tempFilePaths[0])
  1781. try {
  1782. let res = uni.getFileSystemManager().readFileSync(e.tempFilePaths[0], encoding)
  1783. console.log('success:', (res as string).length)
  1784. } catch (e) {
  1785. console.log(e)
  1786. }
  1787. }
  1788. })
  1789. },
  1790. testReadFileSyncArrayBuffer() {
  1791. uni.chooseImage({
  1792. count: 1,
  1793. albumMode: "system",
  1794. sizeType: ["original"],
  1795. sourceType: ["album"],
  1796. success: (e) => {
  1797. console.log(e.tempFilePaths[0])
  1798. try {
  1799. let res = uni.getFileSystemManager().readFileSync(e.tempFilePaths[0], null)
  1800. console.log('success:', (res as ArrayBuffer).byteLength)
  1801. } catch (e) {
  1802. console.log(e)
  1803. }
  1804. }
  1805. })
  1806. },
  1807. copyFileByContent() {
  1808. uni.chooseImage({
  1809. count: 1,
  1810. albumMode: "system",
  1811. sizeType: ["original"],
  1812. sourceType: ["album"],
  1813. success: (e) => {
  1814. console.log(e.tempFilePaths[0])
  1815. uni.getFileSystemManager().copyFile({
  1816. srcPath: e.tempFilePaths[0],
  1817. destPath: uni.env.CACHE_PATH + 'copyFileByContent.jpg',
  1818. complete: (res) => {
  1819. console.log('success:', res)
  1820. }
  1821. })
  1822. }
  1823. })
  1824. },
  1825. copyFileSyncByContent() {
  1826. uni.chooseImage({
  1827. count: 1,
  1828. albumMode: "system",
  1829. sizeType: ["original"],
  1830. sourceType: ["album"],
  1831. success: (e) => {
  1832. console.log(e.tempFilePaths[0])
  1833. try {
  1834. let res = uni.getFileSystemManager().copyFileSync(e.tempFilePaths[0], uni.env.CACHE_PATH + 'copyFileSyncByContent.jpg',)
  1835. console.log('success:', res)
  1836. } catch (e) {
  1837. console.log(e)
  1838. }
  1839. }
  1840. })
  1841. },
  1842. // #endif
  1843. gotoExplore() {
  1844. uni.navigateTo({
  1845. url: "/pages/API/get-file-system-manager/filemanage"
  1846. })
  1847. }
  1848. },
  1849. }
  1850. </script>
  1851. <style>
  1852. .btnstyle {
  1853. margin: 4px;
  1854. }
  1855. </style>