小工具知识网

当前位置: 首页 > 行业知识 > uniapp 读,写,删本地文件

行业知识

uniapp 读,写,删本地文件

2026-10-19 05:25:17 来源:互联网转载
()

��  

       

()

            写入{{count}} s

       

       

            读取

       

       

       

            删除

       

   

    import { mapState } from 'vuex'

    export default {

        data() {

            return {

                count: '',

                timer: null,

                resultdata:[]

            }

        },

        computed: {

            ...mapState({

                token:state=>{

                    return state.user ? state.user.token : null

                },

                user:state=>{

                    return state.user ? state.user : null

                }

            }),

       

        },

   

        methods: {

       

            read(){

                //console.log("读取")

                plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, (fs)=> {

                              // fs.root是根目录操作对象DirectoryEntry

                              let a = fs.root.toURL()  //通过此方法我们可获取存储在app私用环境下的相对跟路径。

                            console.log(a + '/box/' + 'test.json')

                              fs.root.getFile(a + '/box/' + 'test.json', {

                                  create: false

                              }, (fileEntry)=> {

                                  // 文件在手机中的路径

                                 // console.log(fileEntry.fullPath)

                                  fileEntry.file((file)=> {

                                      var fileReader = new plus.io.FileReader();

                                     fileReader.readAsText(file, 'utf-8');

                                     fileReader.onloadend =(evt)=> {

                                         var news = [];

                                         var result = evt.target.result;

                                        console.log(result)

                                         if (result != ""){

                                             this.resultdata=JSON.parse(result)

                                           

                                         }

                                             

                                     }

                                 });

                             });

                         })

               

            },

            wetir(){

                //console.log("写入")

                plus.io.requestFileSystem(

                              plus.io.PUBLIC_DOCUMENTS, // 文件系统中的根目录

                              fs => {

                                   let a = fs.root.toURL()  //通过此方法我们可获取存储在app私用环境下的相对跟路径。

                                  // 创建或打开文件, fs.root是根目录操作对象,直接fs表示当前操作对象

                                  fs.root.getFile(a + '/box/' + 'test.json', {

                                      create: true // 文件不存在则创建

                                  }, fileEntry => {

                                      // 文件在手机中的路径

                                  //  console.log(fileEntry.fullPath)

                                     fileEntry.createWriter(writer => {

                                         // 写入文件成功完成的回调函数

                                         writer.onwrite = e => {

                                             console.log("写入数据成功");                    

                                        };

                                        //console.log(this.resultdata)

                                         // 写入数据

                                         writer.write(JSON.stringify(this.resultdata));

                                         uni.hideLoading()

                                     })

                               }, e => {

                                     console.log("getFile failed: " + e.message);

                                 });

                             },

                             e => {

                                 console.log(e.message);

                             }

                        );

            },

            deletes(){

                //console.log("删除文件")

               

                        plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, (fs)=> {

                            // fs.root是根目录操作对象DirectoryEntry

                            let a = fs.root.toURL();

                            //删除目录不能指向文件名  只能指向文件夹

                            console.log(a+'/box/')

                            plus.io.resolveLocalFileSystemURL(a+'/box/' ,(entry)=> {

                                //读取这个目录对象

                                var directoryReader = entry.createReader();

                                //读取这个目录下的所有文件

                                directoryReader.readEntries((entries)=> {

                                    console.log(entries.length)

                                    //如果有才操作

                                    console.log(entries, 'entries')

                                    if (entries.length > 0) {

                                        //删除目录将会删除其下的所有文件及子目录 不能删除根目录,如果操作删除根目录

                                        //将会删除目录下的文件及子目录,不会删除根目录自身。 删除目录成功通过succesCB

                                        //回调返回,失败则通过errorCB返回。

                                        entry.removeRecursively((entry)=> {

                                         

                                            console.log('删除成功回调')

                                            //删除成功回调

                                            this.resultdata=[]

                                           

                                           

                                        }, (e) =>{

                                            //错误信息

                                            console.log(e.message + ' ?!')

                                        })

                                    }

                                })

                            })

               

                })

               

               

            },

            getCode(){

            const TIME_COUNT = 10; //限定时间

            if (!this.timer) {

                this.count = TIME_COUNT;

               

                    this.timer = setInterval(() => {

                    if (this.count > 0 && this.count {

                            this.resultdata=res

                            console.log(res)

                            this.wetir()

                           

                        }).catch(err=>{

                            uni.hideLoading()

                        })

                    }

                    }, 1000)

                }

            } ,

            dataset(){

                //避免用户重复点击

                this.getCode()

                uni.showLoading({

                    title: '同步中...'

                });

               

            },

        }

    }

 

上一篇:aug服务器怎么进去?

下一篇:服务器除尘照片怎么拍的?