Appcelerator Titanum删除tmp目录中的文件

时间:2013-04-07 03:18:16

标签: titanium titanium-mobile

我正在使用Appcelerator Titanium 3.0.2来允许用户观看/下载视频和音频。以下是获取文件对象和播放音频的代码的一部分。

var filename = self.url.substring(self.url.lastIndexOf('/')+1);
var file = Ti.Filesystem.getFile(Ti.Filesystem.tempDirectory,filename);
if(!file.exists())
    self._download(self.url, filename, Ti.Filesystem.tempDirectory, function(){
      setAudUrl(file.nativePath);
      timeBar.max = audPlayer.duration*1000;
      prgHandle = setInterval(updateProgressBar,10000);
      audPlayer.play();
      audCtrlBar.show();
      loading.hide();
    },
    function(_progress,_position){
      httpClient=_position;
      loading.show();
    },
    function(){
      noLabel.show();
      loading.hide();
    });
else {
    setAudUrl(file.nativePath);
    timeBar.max = audPlayer.duration*1000;
    prgHandle = setInterval(updateProgressBar,10000);
    audPlayer.play();
    audCtrlBar.show();
}

此代码正常运行,但我的问题是如何在用户存在应用程序时删除该文件。由于Apple要求在用户存在应用程序后删除/ tmp目录中的文件。有人可以帮忙吗?感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用Titanium的应用程序事件pausepaused。当应用程序变为非活动状态时会调用它们,但这仅适用于iOS。

Titanium.App.addEventListener('pause' /* or paused, see docs */, function() {
  var dir = Ti.Filesystem.getFile(Ti.Filesystem.tempDirectory, 'tmpDownloads'); // ensure that you use the same folder for storing the downloaded files. A separate folder is easier to remove.
  if(dir.exists() && dir.isDirectory()) {
    dir.deleteDirectory(true); // true removes recursively the directory and its contents
  }
});

您需要在resume应用时再次创建目录。