Problema apertura file sul telefono

Salve,

apro questo topic perchè non ho trovato nessun topic che parli dei file txt.

Devo caricare dei dati da un file txt. Finchè uso l’ app su simulatore funziona senza alcun problema. Invece, quando la installo sul mio telefono, non mi sposta il file txt e quindi non riesce a caricare i dati. Qualcuno sa come risolvere il problema?

Grazie

Riccardo

Ciao, non avevo visto il nuovo topic:)

Cmq ripeto la risposta per comodità:

come scritto nel documento del link, Android non può accedere alla directory delle risorse (system.ResourceDirectory), ma a quella dei documenti (system.DocumentsDirectory).

Questo sembrerebbe apparentemente il motivo per cui non trovi il file.

Puoi comunque verifcare sei il tuo file è contenuto nel .apk dopo la compilazione rinominando il tuo file apk a zip, es: miaApp.apk diventa miaApp.apk.zip, dopodiche con winzip o simili puoi spacchettare il file e controllare se in esso è contenuto, e dove è posizionato il tuo file .txt

Ciao,

Ale

Grazie ad Ale sono riuscito a capire come leggere i file da android.

Basta cambiare destinazione tramite la funzione “copyFile”:

local function copyFile( srcName, srcPath, dstName, dstPath, overwrite ) local results = true -- assume no errors -- Copy the source file to the destination file -- local rfilePath = system.pathForFile( srcName, srcPath ) local wfilePath = system.pathForFile( dstName, dstPath ) local rfh = io.open( rfilePath, "rb" ) local wfh = io.open( wfilePath, "wb" ) if not wfh then print( "writeFileName open error!" ) results = false -- error else -- Read the file from the Resource directory and write it to the destination directory local data = rfh:read( "\*a" ) if not data then print( "read error!" ) results = false -- error else if not wfh:write( data ) then print( "write error!" ) results = false -- error end end end -- Clean up our file handles rfh:close() wfh:close() return results end copyFile( "file.txt", nil, "file.txt", system.DocumentsDirectory )

Grazie ancora,

Riccardo

Ciao, non avevo visto il nuovo topic:)

Cmq ripeto la risposta per comodità:

come scritto nel documento del link, Android non può accedere alla directory delle risorse (system.ResourceDirectory), ma a quella dei documenti (system.DocumentsDirectory).

Questo sembrerebbe apparentemente il motivo per cui non trovi il file.

Puoi comunque verifcare sei il tuo file è contenuto nel .apk dopo la compilazione rinominando il tuo file apk a zip, es: miaApp.apk diventa miaApp.apk.zip, dopodiche con winzip o simili puoi spacchettare il file e controllare se in esso è contenuto, e dove è posizionato il tuo file .txt

Ciao,

Ale

Grazie ad Ale sono riuscito a capire come leggere i file da android.

Basta cambiare destinazione tramite la funzione “copyFile”:

local function copyFile( srcName, srcPath, dstName, dstPath, overwrite ) local results = true -- assume no errors -- Copy the source file to the destination file -- local rfilePath = system.pathForFile( srcName, srcPath ) local wfilePath = system.pathForFile( dstName, dstPath ) local rfh = io.open( rfilePath, "rb" ) local wfh = io.open( wfilePath, "wb" ) if not wfh then print( "writeFileName open error!" ) results = false -- error else -- Read the file from the Resource directory and write it to the destination directory local data = rfh:read( "\*a" ) if not data then print( "read error!" ) results = false -- error else if not wfh:write( data ) then print( "write error!" ) results = false -- error end end end -- Clean up our file handles rfh:close() wfh:close() return results end copyFile( "file.txt", nil, "file.txt", system.DocumentsDirectory )

Grazie ancora,

Riccardo