下载文档

文件模块File
更新时间:2016-03-09

关于appcan文件操作的基础功能的封装

appcan.file.wgtPath

当前widget的根目录
例如:

  1. 如果你安装一个demo,到存储卡上则
  2. /storage
  3. /widgetone
  4. /apps 所有的应用位置
  5. /demo 这里就是demo widget的根目录
  6. /video
  7. /myspace
  8. /audio
  9. /photo
  10. /widgets

appcan.file.resPath

当前widget/wgtRes目录(支持IOS,Android),用户可以自行预置此目录下文件

appcan.file.wgtRootPath

用于部署在服务器端的Appcan应用,必要时打开本地沙箱中widget根目录下的本地网页使用
例如:当前窗口加载的是服务器上的http://www.xxx.com/xxx.html网页, 如果在xxx.html页面中open一个窗口时,传入的inData为’wgtroot://index.html’, 那么本次open执行时,引擎将会到本应用对应的widget路径下去寻找此页面,例如android上找到的路径会是:file:///android_assert/widget/index.html或者/sdcard/widgetone/widgets/widgetXXX/index.html。

appcan.file.open(filePath,mode,callback)

打开文件流

  1. filePath:要打开文件的路径
  2. mode:打开文件的方式
  3. 1 只读方式打开
  4. 2 可写方式打开
  5. 4 新建方式打开
  6. 8:电子书方式打开
  7. callback(err,data,dataType,optId):打开文件结果回调函数,第一个参数是Error对象如果为空则表示 没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id

参数还可以以对象的形式传参:

  1. {
  2. filePath:'',
  3. mode:'',
  4. callback:function(err,data,dataType,optId){
  5. //do somethings
  6. }
  7. }

例如:

  1. //打开一个文本文件
  2. appcan.file.open('wgt://a.txt',1,function(err,data,dataType,optId){
  3. if(err){
  4. //出错了
  5. alert(err);
  6. return;
  7. }
  8. if(data == 0){
  9. //打开成功了
  10. }else{
  11. //打开失败
  12. }
  13. });
  14. //另外一种使用方式
  15. var file = appcan.require('file');
  16. file.open('wgt://a.txt',1,function(err,data,dataType,optId){
  17. if(err){
  18. //出错了
  19. alert(err);
  20. return;
  21. }
  22. if(data == 0){
  23. //打开成功了
  24. }else{
  25. //打开失败
  26. }
  27. });

appcan.file.openSecure(filePath,mode,key,callback)

打开加密的文件流

  1. filePath:要打开文件的路径
  2. mode:打开文件的方式
  3. 1 只读方式打开
  4. 2 可写方式打开
  5. 4 新建方式打开
  6. 8:电子书方式打开
  7. key:加密的密钥
  8. callback(err,data,dataType,optId):打开文件结果回调函数,第一个参数是Error对象如果为空则表示 没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id

参数还可以以对象的形式传参:

  1. {
  2. filePath:'',
  3. mode:'',
  4. key:'',
  5. callback:function(err,data,dataType,optId){
  6. //do somethings
  7. }
  8. }

例如:

  1. //打开一个加密的文本文件
  2. appcan.file.openSecure('wgt://a.txt',1,'password',function(err,data,dataType,optId){
  3. if(err){
  4. //出错了
  5. alert(err);
  6. return;
  7. }
  8. if(data == 0){
  9. //打开成功了
  10. }else{
  11. //打开失败
  12. }
  13. });
  14. //另外一种使用方式
  15. var file = appcan.require('file');
  16. file.openSecure('wgt://a.txt',1,'password',function(err,data,dataType,optId){
  17. if(err){
  18. //出错了
  19. alert(err);
  20. return;
  21. }
  22. if(data == 0){
  23. //打开成功了
  24. }else{
  25. //打开失败
  26. }
  27. });

appcan.file.close(optId)

关闭文件流

  1. optId:文件的操作Id

参数还可以以对象的形式传参:

  1. {
  2. optId:''
  3. }

例如:

  1. //关闭一个指定的文件流
  2. appcan.file.close(optId)
  3. //另外一种使用方式
  4. var file = appcan.require('file');
  5. file.close(optId)

appcan.file.read(filePath,length,callback)

读取指定文件的内容

  1. filePath:要读取文件的路径
  2. length:要读取文件的长度,默认为-1即读取文件全部内容
  3. callback(err,data,dataType,optId):读取文件完成后的回调,第一个参数是Error对象如果为空则表示 没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id

参数还可以以对象的形式传参:

  1. {
  2. filePath:'',
  3. length:-1,
  4. callback:function(err,data,dataType,optId){
  5. //do somethings
  6. }
  7. }

例如:

  1. //读取指定的文件内容
  2. appcan.file.read({
  3. filePath:'wgt://a.txt',
  4. callback:function(err,data,dataType,optId){
  5. if(err){
  6. //出错了
  7. return;
  8. }
  9. //data 就是文件内的数据
  10. }
  11. });
  12. //另外一种使用方式
  13. var file = appcan.require('file');
  14. file.read({
  15. filePath:'wgt://a.txt',
  16. callback:function(err,data,dataType,optId){
  17. if(err){
  18. //出错了
  19. return;
  20. }
  21. //data 就是文件内的数据
  22. }
  23. });

appcan.file.readSecure(filePath,length,key,callback)

读取指定加密文件的内容

  1. filePath:要读取文件的路径
  2. length:要读取文件的长度,默认为-1即读取文件全部内容
  3. key:加密的密钥
  4. callback(err,data,dataType,optId):读取文件完成后的回调,第一个参数是Error对象如果为空则表示 没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id

参数还可以以对象的形式传参:

  1. {
  2. filePath:'',
  3. length:-1,
  4. key:'',
  5. callback:function(err,data,dataType,optId){
  6. //do somethings
  7. }
  8. }

例如:

  1. ///读取指定的文件内容
  2. appcan.file.readSecure({
  3. filePath:'wgt://a.txt',
  4. key:'',
  5. callback:function(err,data,dataType,optId){
  6. if(err){
  7. //出错了
  8. return;
  9. }
  10. //data 就是文件内的数据
  11. }
  12. });
  13. //读取指定的文件内容
  14. var file = appcan.require('file');
  15. file.readSecure({
  16. filePath:'wgt://a.txt',
  17. key:'',
  18. callback:function(err,data,dataType,optId){
  19. if(err){
  20. //出错了
  21. return;
  22. }
  23. //data 就是文件内的数据
  24. }
  25. });

appcan.file.readJSON(filePath,callback)

读取指定的json文件

  1. filePath:json文件的路径
  2. callback(err,res):读取文件完成后的回调,第一个参数err是一个错误对象,如果为空表示没有错误,如果 不为空表示出错了,res为指定文件的json对象

参数还可以以对象的形式传参:

  1. {
  2. filePath:'',
  3. callback:function(err,res){
  4. //do somethings
  5. }
  6. }

例如:

  1. //读一个json文件
  2. appcan.file.readJSON({
  3. filePath:'wgt://a.json',
  4. callback:function(err,res){
  5. if(err){
  6. //出错了
  7. return;
  8. }
  9. //res文件保存这的数据转成了JSON
  10. }
  11. });
  12. //另外一种使用方式
  13. var file = appcan.require('file');
  14. file.readJSON({
  15. filePath:'wgt://a.json',
  16. callback:function(err,res){
  17. if(err){
  18. //出错了
  19. return;
  20. }
  21. //res文件保存这的数据转成了JSON
  22. }
  23. });

appcan.file.write(filePath,content,callback,mode)

把内容写到指定的文件中 filePath:要写的文件路径

  1. content:要写到文件中的内容
  2. mode:写入文件中的方式
  3. callback(err):写完成后的回调,err是错误对象,如果为空则表示没有错误,否则表示有错误发生

参数还可以以对象的形式传参:

  1. {
  2. filePath:'',
  3. content:'',
  4. mode:'',
  5. callback:function(err){
  6. //do somethings
  7. }
  8. }

例如:

  1. //向文件中写入数据
  2. appcan.file.write({
  3. filePath:'a.txt',
  4. content:'hello world',
  5. callback:function(err){
  6. if(err){
  7. //写入出错了
  8. return;
  9. }
  10. //写入成功了
  11. }
  12. });
  13. //另外一种使用方式
  14. var file = appcan.require('file');
  15. file.write({
  16. filePath:'a.txt',
  17. content:'hello world',
  18. callback:function(err){
  19. if(err){
  20. //写入出错了
  21. return;
  22. }
  23. //写入成功了
  24. }
  25. });

appcan.file.writeSecure(filePath,content,callback,mode,key)

把内容写到指定的加密文件中

  1. filePath:要写的文件路径
  2. content:要写到文件中的内容
  3. mode:写入文件中的方式
  4. key:加密的密钥
  5. callback(err):写完成后的回调,err是错误对象,如果为空则表示没有错误,否则表示有错误发生

参数还可以以对象的形式传参:

  1. {
  2. filePath:'',
  3. content:'',
  4. mode:'',
  5. key:'',
  6. callback:function(err){
  7. //do somethings
  8. }
  9. }

例如:

  1. //向文件中写入数据
  2. appcan.file.writeSecure({
  3. filePath:'a.txt',
  4. key:'password',
  5. content:'hello world',
  6. callback:function(err){
  7. if(err){
  8. //写入出错了
  9. return;
  10. }
  11. //写入成功了
  12. }
  13. });
  14. //另外一种使用方式
  15. var file = appcan.require('file');
  16. file.writeSecure({
  17. filePath:'a.txt',
  18. key:'password',
  19. content:'hello world',
  20. callback:function(err){
  21. if(err){
  22. //写入出错了
  23. return;
  24. }
  25. //写入成功了
  26. }
  27. });

appcan.file.create(filePath,callback)

创建一个新文件

  1. filePath:新文件的路径
  2. callback(err,data,dataType,optId):创建文件完成后的回调,第一个参数是Error对象如果为空则表示 没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id

参数还可以以对象的形式传参:

  1. {
  2. filePath:'',
  3. callback:function(err,data,dataType,optId){
  4. //do somethings
  5. }
  6. }

例如:

  1. //创建一个新文件
  2. appcan.file.create({
  3. filePath:'wgt://a.txt',
  4. callback:function(err,data,dataType,optId){
  5. if(err){
  6. //创建文件出错了
  7. return;
  8. }
  9. if(data == 0){
  10. //创建成功
  11. }else{
  12. //创建失败
  13. }
  14. }
  15. });
  16. //另外一种使用方式
  17. var file = appcan.require('file');
  18. file.create({
  19. filePath:'wgt://a.txt',
  20. callback:function(err,data,dataType,optId){
  21. if(err){
  22. //创建文件出错了
  23. return;
  24. }
  25. if(data == 0){
  26. //创建成功
  27. }else{
  28. //创建失败
  29. }
  30. }
  31. });

appcan.file.createSecure(filePath,key,callback)

创建一个新加密文件

  1. filePath:新文件的路径
  2. key:加密的密钥
  3. callback(err,data,dataType,optId):创建加密文件完成后的回调,第一个参数是Error对象如果为空则表示 没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id

参数还可以以对象的形式传参:

  1. {
  2. filePath:'',
  3. key:'',
  4. callback:function(err,data,dataType,optId){
  5. //do somethings
  6. }
  7. }

例如:

  1. //创建一个新文件
  2. appcan.file.createSecure({
  3. filePath:'wgt://a.txt',
  4. key:'password',
  5. callback:function(err,data,dataType,optId){
  6. if(err){
  7. //创建文件出错了
  8. return;
  9. }
  10. if(data == 0){
  11. //创建成功
  12. }else{
  13. //创建失败
  14. }
  15. }
  16. });
  17. //另外一种使用方式
  18. var file = appcan.require('file');
  19. file.createSecure({
  20. filePath:'wgt://a.txt',
  21. key:'password',
  22. callback:function(err,data,dataType,optId){
  23. if(err){
  24. //创建文件出错了
  25. return;
  26. }
  27. if(data == 0){
  28. //创建成功
  29. }else{
  30. //创建失败
  31. }
  32. }
  33. });

appcan.file.remove(filePath,callback)

删除指定的文件

  1. filePath:要删除的文件路径
  2. callback(err,data,dataType,optId):删除文件完成后的回调,第一个参数是Error对象如果为空则表示 没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id

参数还可以以对象的形式传参:

  1. {
  2. filePath:'',
  3. callback:function(err,data,dataType,optId){
  4. //do somethings
  5. }
  6. }

例如:

  1. //删除一个指定的文件,删除a.txt文件
  2. appcan.file.remove({
  3. filePath:'wgt://a.txt',
  4. callback:function(err,data,dataType,optId){
  5. if(err){
  6. //删除文件错误
  7. return;
  8. }
  9. if(data == 0){
  10. //删除文件成功
  11. }else{
  12. //删除文件失败
  13. }
  14. }
  15. });
  16. //另外一种使用方式
  17. var file = appcan.require('file');
  18. file.remove({
  19. filePath:'wgt://a.txt',
  20. callback:function(err,data,dataType,optId){
  21. if(err){
  22. //删除文件错误
  23. return;
  24. }
  25. if(data == 0){
  26. //删除文件成功
  27. }else{
  28. //删除文件失败
  29. }
  30. }
  31. });

appcan.file.append(filePath,content,callback)

把内容附加到指定的文件路径

  1. filePath:要附加内容的文件路径
  2. content:要附加的内容
  3. callback(err):写完成后的回调,err是错误对象,如果为空则表示没有错误,否则表示有错误发生

参数还可以以对象的形式传参:

  1. {
  2. filePath:'',
  3. content:'',
  4. callback:function(err){
  5. //do somethings
  6. }
  7. }

例如:

  1. //附加新内容到现有内容上
  2. appcan.file.append({
  3. filePath:'a.txt',
  4. content:'hello world',
  5. callback:function(err){
  6. if(err){
  7. //附加内容出错了
  8. return;
  9. }
  10. //附加内容成功
  11. }
  12. });
  13. //另一种使用方式
  14. var file = appcan.require('file');
  15. file.append({
  16. filePath:'a.txt',
  17. content:'hello world',
  18. callback:function(err){
  19. if(err){
  20. //附加内容出错了
  21. return;
  22. }
  23. //附加内容成功
  24. }
  25. });

appcan.file.exists(filePath,callback)

判断给定的路径是否存在文件

  1. filePath:要判断给定文件的路径
  2. callback(err,data,dataType,optId):判断文件是否存在的回调,第一个参数是Error对象如果为空则表示 没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id

参数还可以以对象的形式传参:

  1. {
  2. filePath:'',
  3. callback:function(err,data,dataType,optId){
  4. //do somethings
  5. }
  6. }

例如:

  1. //判断文件a.txt是否存在
  2. appcan.file.exists({
  3. filePath:'wgt://a.txt',
  4. callback:function(err,data,dataType,optId){
  5. if(err){
  6. //判断文件文件出错了
  7. return;
  8. }
  9. if(data == 1){
  10. //文件存在
  11. }else{
  12. //文件不存在
  13. }
  14. }
  15. });
  16. //判断文件a.txt是否存在
  17. var file = appcan.require('file');
  18. file.exists({
  19. filePath:'wgt://a.txt',
  20. callback:function(err,data,dataType,optId){
  21. if(err){
  22. //判断文件文件出错了
  23. return;
  24. }
  25. if(data == 1){
  26. //文件存在
  27. }else{
  28. //文件不存在
  29. }
  30. }
  31. });

appcan.file.stat(filePath,callback)

获取文件的相关属性

  1. filePath:文件路径
  2. callback(err,data,dataType,optId):获取文件属性后的回调,第一个参数是Error对象如果为空则表示 没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id 其中data.isFile如果为true表示是文件,data.isDirectory true表示是文件夹。

参数还可以以对象的形式传参:

  1. {
  2. filePath:'',
  3. callback:function(err,data,dataType,optId){
  4. //do somethings
  5. }
  6. }

例如:

  1. //获取文件信息
  2. appcan.file.stat({
  3. filePath:'wgt://a.txt',
  4. callback:function(err,data,dataType,optId){
  5. if(err){
  6. //获取文件信息出错了
  7. return;
  8. }
  9. if(data.isFile){
  10. //该路径是文件
  11. }
  12. if(data.isDirectory){
  13. //该路径是一个文件夹
  14. }
  15. }
  16. });
  17. //另外一种方式
  18. var file = appcan.require('file');
  19. file.stat({
  20. filePath:'wgt://a.txt',
  21. callback:function(err,data,dataType,optId){
  22. if(err){
  23. //获取文件信息出错了
  24. return;
  25. }
  26. if(data.isFile){
  27. //该路径是文件
  28. }
  29. if(data.isDirectory){
  30. //该路径是一个文件夹
  31. }
  32. }
  33. });

appcan.file.deleteLocalFile(callback)

删除appcan.file.writeLocalFile操作写入的文件wgt://data/locFile.txt

  1. callback(err,data,dataType,optId):删除文件完成后的回调,第一个参数是Error对象如果为空则表示 没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id

参数还可以以对象的形式传参:

  1. {
  2. callback:function(err,data,dataType,optId){
  3. //do somethings
  4. }
  5. }

例如:

  1. //删除预置本地文件
  2. appcan.file.deleteLocalFile(function(err,data,dataType,optId){
  3. if(err){
  4. //删除文件出错了
  5. return err;
  6. }
  7. if(data == 0){
  8. //删除文件成功
  9. }else{
  10. //删除文件失败
  11. }
  12. });
  13. //另外一种使用方式
  14. var file = appcan.require('file');
  15. file.deleteLocalFile(function(err,data,dataType,optId){
  16. if(err){
  17. //删除文件出错了
  18. return err;
  19. }
  20. if(data == 0){
  21. //删除文件成功
  22. }else{
  23. //删除文件失败
  24. }
  25. });

appcan.file.writeLocalFile(content,callback)

重写wgt://data/locFile.txt中的内容,如果不存在文件则创建并写入

  1. content:要重写的内容
  2. callback(err):写完成后的回调,err是错误对象,如果为空则表示没有错误,否则表示有错误发生

参数还可以以对象的形式传参:

  1. {
  2. content:'',
  3. callback:function(err){
  4. //do somethings
  5. }
  6. }

例如:

  1. //向本地预置文件中写新内容
  2. appcan.file.writeLocalFile({
  3. content:'hello world',
  4. callback:function(err){
  5. if(err){
  6. //出错了
  7. return;
  8. }
  9. //写文件成功
  10. }
  11. });
  12. //另外一种使用方式
  13. var file = appcan.require('file');
  14. file.writeLocalFile({
  15. content:'hello world',
  16. callback:function(err){
  17. if(err){
  18. //出错了
  19. return;
  20. }
  21. //写文件成功
  22. }
  23. });

appcan.file.readLocalFile(callback)

获取本地文件中的内容

  1. callback(err,data,dataType,optId):读取文件完成后的回调,第一个参数是Error对象如果为空则表示 没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id

参数还可以以对象的形式传参:

  1. {
  2. callback:function(err,data,dataType,optId){
  3. //do somethings
  4. }
  5. }

例如:

  1. //读取预置的本地文件内容
  2. appcan.file.readLocalFile(function(err,data,dataType,optId){
  3. if(err){
  4. //读取内容出错了
  5. return;
  6. }
  7. //data就是文件的内容
  8. });
  9. //另外一种使用方式
  10. var file = appcan.require('file');
  11. file.readLocalFile(function(err,data,dataType,optId){
  12. if(err){
  13. //读取内容出错了
  14. return;
  15. }
  16. //data就是文件的内容
  17. });

appcan.file.getRealPath(filePath,callback)

获取给定路径的真实路径

  1. filePath:要获取真实路径的路径
  2. callback(err,data,dataType,optId):获取文件后的回调函数,第一个参数是Error对象如果为空则表示 没有错误,否则表示操作出错了,data表示返回的操作结果,dataType操作结果的数据类型,optId该操作id

参数还可以以对象的形式传参:

  1. {
  2. filePath:'',
  3. callback:function(err,data,dataType,optId){
  4. //do somethings
  5. }
  6. }

例如:

  1. //读取预置的本地文件内容
  2. appcan.file.getRealPath('wgt://a.txt'function(err,data,dataType,optId){
  3. if(err){
  4. //读取内容出错了
  5. return;
  6. }
  7. //data就是真实路径
  8. });
  9. //另外一种使用方式
  10. var file = appcan.require('file');
  11. file.getRealPath('wgt://a.txt'function(err,data,dataType,optId){
  12. if(err){
  13. //读取内容出错了
  14. return;
  15. }
  16. //data就是真实路径
  17. });