2010-04-19 23 views
5

Come posso copiare file nel file system (luogo) in Android? Come posso accedervi?come posso copiare file nel file system di Android?

+1

Questa è una domanda di programmazione o una domanda utente? stai copiando * dal * tuo computer? il tuo dispositivo Android? sulla scheda SD? la scheda SD è montata, se collegata al computer? –

+0

Questa è una domanda di programmazione. Tutto ciò di cui ho bisogno è il percorso. Voglio mettere alcuni file in modo che l'utente non possa accedervi. Penso che questo sia il modo migliore per farlo –

+0

Ho pensato di aver capito la tua domanda fino a quando ho letto il tuo commento. Stai provando a scrivere file sul file system (ad esempio nel tuo codice in esecuzione all'interno di Dalvik) o stai cercando di distribuirli (tramite una connessione fisica a un computer host)? –

risposta

1

È possibile utilizzare:

Environment.getExternalStorageDirectory() 

che vi darà /sdcard se il dispositivo ha uno sdcard, o qualcosa di diverso in altri casi. Ad esempio l'Archos.

+0

Lo so ... ma questo non è quello che ho chiesto. –

0

Probabilmente si può nascondere il proprio file nella sdcard dal prefisso con un punto (es: .myfile)

+0

In questo caso, l'utente può collegare il dispositivo al computer e quindi vedere i file. Ho ragione? –

+0

Se sfoglia la sdcard da una finestra di Windows sì. Ma se davvero non vuoi che l'utente faccia casino con il tuo file, usa risorse o risorse non elaborate. L'unico inconveniente è che è in sola lettura. Forse puoi usare un database? – Rorist

11

copiare i file da Android a file di

adb pull /data/data/com.example.sample ./sample/ 

copia locale per Android di locali

adb push ./sample/ /sdcard/sample/ 
+0

+1 Puoi anche farlo dall'applicazione DDMS se preferisci fare clic su cose, ma questa è solo un'implementazione della GUI di questi comandi. –

+0

Non voglio copiare sulla sdcard ... Voglio copiare nella directory del file system –

+0

non penso di scrivere direttamente nella directory del file system Android. è possibile solo a livello di programmazione dall'applicazione su cui si sta lavorando. Ogni applicazione riceve uno spazio protetto all'interno di/data/data/myApp, quindi in questo modo un'applicazione non può scrivere su un'altra cartella di app. Beh, sono un po 'fuori mano con lo sviluppo di Android in questo momento, quindi potrei sbagliarmi. – Raja

2

io non sono sicuro se questo è quello che stai chiedendo, ma ecco un'altra interpretazione della tua domanda:

È possibile inserire file nella cartella assets nel progetto sul computer di sviluppo. Verranno raggruppati nel file apk e quindi accedervi tramite la classe AssetManager. Qualcosa di simile all'interno di un servizio o classe di attività:

AssetManager am = getAssets(); 
InputStream is = am.open("filename"); 

Ciò consentirà di leggere il contenuto di tali file. Non credo che tu possa scrivere loro comunque. Ci sono altre opzioni per se hai bisogno di leggere e scrivere file nella sandbox di archiviazione dell'applicazione. Questo viene fatto chiamando openFileOutput(). Devo tuttavia notare che l'utente può sempre accedere ai file sul dispositivo tramite ddms, ma altre applicazioni non saranno in grado di accedere ai file archiviati nella sandbox di archiviazione dell'applicazione.

Modifica Sulla base di un commento, probabilmente si desidera utilizzare

OutputStream out = openFileOutput("outfile"); 

per scrivere in un file dal codice. Questo codice deve essere chiamato all'interno di un Activity o Service (qualcosa che si estende Context). Questo file verrà memorizzato sul file system del telefono e non sulla sdcard. Questi file non saranno accessibili all'utente medio. Se gli utenti sanno come abilitare il debug USB, saranno in grado di accedervi e non c'è davvero alcun modo per aggirarlo.

1

ho preso qualche tempo per la ricerca sui file di sistema di Android precedenti, ma quasi sempre con x86 Android, ho scoperto che nella cartella/system all'interno di Android è di sola lettura,

È un'immagine con il formato è SFS formato, questo è il formato immagine di sola lettura di Linux quindi non penso che sia possibile copiare qualcosa all'interno di questa cartella. Non sono sicuro di Android con le radici. Spero ti possa aiutare.

Problemi correlati