2012-02-21 14 views
5

Estoy tratando de leer un archivo .PNG usando Titanium 1.8.1 Aquí está mi código para leer el archivo.Titanium Crear archivo de imagen: archivo.write (blob) no crea el archivo correcto

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

Cuando se crea un nuevo archivo con el objeto blob anterior, el nuevo archivo así creado no es igual que el archivo original. Aquí está mi código para crear el nuevo archivo.

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); 

Se crea outFile.png pero el problema es que no es un archivo de imagen válido. Además, el tamaño del archivo es de alrededor de 53 bytes, mientras que mi archivo de entrada fue de 1 kb.

El mismo código funciona bien si usamos un archivo de texto simple como entrada y tratamos de crear un archivo de salida duplicado.

Respuesta

0

Debe cerrar el archivo una vez que haya terminado de escribir.

test.close(); 
+0

Hola bsavas, la prueba es un valor lógico no presenta objeto. también Titanium no tiene dicho método llamado close on file object. – vaibhav

+0

Ya veo. Lo siento, pensé que era File-Stream. Tal vez deberías intentarlo con el objeto FileStream. http://developer.appcelerator.com/blog/2011/05/titanium-mobile-intro-series-streams.html – bsavas

+0

intentado, sin suerte :( – vaibhav

1

Usted no necesita hacer leer() lo hace así:

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