android - 如何使用 Appcelerator/Titanium 正确重命名和移动文件?

标签 android ios file appcelerator

当用户拍摄相机时,文件存储在 tempDirectory 文件夹中。该文件被重命名并移动到 appImages 文件夹(在 applicationDataDirectory 中)。这http://docs.appcelerator.com/platform/latest/#!/guide/Filesystem_Access_and_Storage很有帮助。

下面的代码完全适用于 Android,但对于 iOS,文件仅重命名,但不移动。有任何想法吗?

var fs = Ti.Filesystem; 
var imageDir = fs.getFile(fs.applicationDataDirectory,'appImages');
    if (! imageDir.exists()) {
        imageDir.createDirectory();
    }
var tempFile = fs.getFile(fs.tempDirectory,timeStamp + "_" + registeredUserID + "_nomination.jpg"); 
    tempFile.rename(nid + "_" + registeredUserID + "_nomination.jpg"); //renames nomination image
    tempFile = fs.getFile(fs.tempDirectory,nid + "_" + registeredUserID + "_nomination.jpg"); //gets the new handler
    tempFile.move("appImages/" + nid + "_" + registeredUserID + "_nomination.jpg"); //moves nomination image

var tempListAfter = Ti.Filesystem.getFile(Ti.Filesystem.tempDirectory).getDirectoryListing();
    Ti.API.info("tempListAfter AFTER moving: " + JSON.stringify(tempListAfter));
    var appImagesListAfter = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory,'appImages').getDirectoryListing();
    Ti.API.info("appImagesListAfter AFTER moving: " + JSON.stringify(appImagesListAfter)); //iOS results an empty array, but works in Android and shows the properly named files in Android
    tempFile = tempThumbFile = null;

解决方案基于Mituls的建议:

tempFile.move(imageDir.nativePath + nid + "_" + registeredUserID + "_nomination.jpg");

最佳答案

我认为你应该使用 imageDir.nativePath 来移动 tempFile

tempFile.move(imageDir.nativePath);

关于android - 如何使用 Appcelerator/Titanium 正确重命名和移动文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45041909/

相关文章:

objective-c - 从服务器下载本地化文件 - ios编程

c - 如何在没有 fseek 和 ftell 的情况下在 ANSI C 中获取文件大小?

c++ - remove() 函数删除所有其他文件

c - 文件写入C困惑

android - 如何将关闭按钮放在 android 警告对话框的右上角?

android - 如何用动画更新ListView的单行?

iOS 7 : UITabBarItem badge z-index

iPhone SDK : detect view that was tapped

android - 将外部Sqlite与SimpleCursorAdapter一起使用时应用崩溃

java - Android - AutoCompleteTextView onClick 给出错误