2012-02-21 14 views
5

チタン1.8.1を使用して.PNGファイルを読み込もうとしています ファイルを読み取るコードはここにあります。チタン作成画像ファイル:file.write(blob)が正しいファイルを作成していません

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でした。

単純なテキストファイルを入力として使用し、重複する出力ファイルを作成しようとすると、同じコードが正常に機能します。

答えて

0

書き込みが完了したらファイルを閉じる必要があります。

test.close(); 
+0

こんにちはbsavasは、テストでは、Booleanオブジェクトをファイルではありません。また、Titaniumにはclose on fileオブジェクトというメソッドはありません。 – vaibhav

+0

私は参照してください。申し訳ありませんが、私はファイルストリームだと思っていました。 FileStreamオブジェクトで試してみてください。 http://developer.appcelerator.com/blog/2011/05/titanium-mobile-intro-series-streams.html – bsavas

+0

試してみましたが、運はありません:( – vaibhav

1

あなたはこのようにそれを行う)(読みくださいする必要はありません。

var t = Titanium.Filesystem.getFile(tempDataDirectory, 'a.json'); 
var o = Titanium.Filesystem.getFile(onlineDataDirectory, 'b.json'); 
o.write(t); 
関連する問題