【问题标题】:Titanium Creating Image file: file.write(blob) not creating the correct fileTitanium 创建映像文件:file.write(blob) 未创建正确的文件
【发布时间】:2012-02-21 12:09:42
【问题描述】:

我正在尝试使用 Titanium 1.8.1 读取 .PNG 文件 这是我读取文件的代码。

var f = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory, 'KS_nav_views.png');
var blob = f.read();

当我使用上述 blob 对象创建新文件时,由此创建的新文件与原始文件不同。 这是我创建新文件的代码。

var outputDir = Titanium.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory,'output');
outputDir.createDirectory();
var newFile = Titanium.Filesystem.getFile(outputDir.nativePath,'outFile.png');
var test = newFile.write(blob);
if ( test === false){
      Ti.API.debug("Write Error");
}
Ti.API.debug("Write complete? "  + test);

outFile.png 被创建,但问题是它不是一个有效的图像文件。该文件的大小也约为 53 字节,而我的输入文件为 1kb。

如果我们使用简单的文本文件作为输入并尝试创建重复的输出文件,则相同的代码可以正常工作。

【问题讨论】:

    标签: android titanium titanium-mobile


    【解决方案1】:

    你不需要这样做 read() 这样做:

    var t = Titanium.Filesystem.getFile(tempDataDirectory, 'a.json');
    var o = Titanium.Filesystem.getFile(onlineDataDirectory, 'b.json');
    o.write(t);
    

    【讨论】:

      【解决方案2】:

      完成写入后,您需要关闭文件。

      test.close();
      

      【讨论】:

      • 嗨,bsavas,test 是一个布尔值而不是文件对象。 Titanium 也没有在文件对象上称为 close 的这种方法。
      • 我明白了。抱歉,我以为是文件流。也许您应该尝试使用 FileStream 对象。 developer.appcelerator.com/blog/2011/05/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-18
      • 2019-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      相关资源
      最近更新 更多