2010-04-19 21 views
5

¿Cómo puedo copiar archivos al sistema de archivos (lugar) en android? ¿Cómo puedo acceder?¿cómo puedo copiar archivos al sistema de archivos de android?

+1

¿es esta una pregunta de programación o de un usuario? ¿Está copiando * desde * su computadora? su dispositivo Android? a la tarjeta SD? ¿Está montada su tarjeta SD, si está conectada a la computadora? –

+0

Esta es una pregunta de programación. Todo lo que necesito es el camino. Quiero poner algunos archivos para que el usuario no tenga acceso a ellos. Creo que esta es la mejor manera de hacerlo, –

+0

. Creo que entendí tu pregunta hasta que leí tu comentario. ¿Está tratando de escribir archivos en el sistema de archivos (es decir, en su código que se ejecuta dentro de Dalvik) o está tratando de implementarlos (a través de una conexión física a una máquina host)? –

Respuesta

1

que puede utilizar:

Environment.getExternalStorageDirectory() 

qué le dará /sdcard si el dispositivo tiene una tarjeta sd, o algo diferente en otros casos. Por ejemplo, el Archos.

+0

Lo sé ... pero esto no es lo que pregunté. –

0

Probablemente puede ocultar su archivo en la tarjeta sd prefijándolo con un punto (por ejemplo: .myfile)

+0

En este caso, el usuario puede conectar el dispositivo a la computadora y luego ver los archivos. ¿Estoy en lo cierto? –

+0

Si examina la tarjeta SD desde un recuadro de ventanas, sí. Pero si realmente no desea que el usuario juegue con su archivo, use activos o recursos sin procesar. El único inconveniente es que es de solo lectura. ¿Tal vez puede usar una base de datos en su lugar? – Rorist

11

archivos de copia de archivo de Android para

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

copia local a Android desde el local

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

+1 También puede hacer esto desde la aplicación DDMS si prefiere hacer clic en las cosas, pero eso es solo una implementación GUI de estos comandos. –

+0

No quiero copiar a la tarjeta SD ... Quiero copiar al directorio del sistema de archivos –

+0

No creo que escriba directamente en el directorio del sistema de archivos de Android. solo es posible programáticamente desde la aplicación en la que está trabajando. Cada aplicación recibe un espacio protegido dentro de/data/data/myApp, de esta forma una aplicación no puede escribir en otra carpeta de aplicaciones. Bueno, estoy un poco fuera de contacto con el desarrollo de Android en este momento, así que podría estar equivocado. – Raja

2

no estoy seguro si esto es lo que estás pidiendo, pero aquí hay otra interpretación de su pregunta:

Puede colocar archivos en la carpeta assets del proyecto en su máquina de desarrollo. Se agruparán en el archivo apk y luego accederán a ellos a través de la clase AssetManager. Algo así como dentro de una clase de Servicio o Actividad:

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

Esto le permitirá leer el contenido de esos archivos. Aunque no creo que puedas escribirles. Hay otras opciones para si necesita leer y escribir archivos en el entorno limitado de almacenamiento de su aplicación. Esto se hace llamando al openFileOutput(). Sin embargo, debo señalar que el usuario siempre puede acceder a los archivos en el dispositivo a través de ddms, pero otras aplicaciones no podrán acceder a los archivos almacenados en el entorno limitado de almacenamiento de su aplicación.

Editar Basado en su comentario, es probable que desee utilizar

OutputStream out = openFileOutput("outfile"); 

escribir en un archivo de su código. Este código debe invocarse desde Activity o Service (algo que se extiende a Context). Este archivo se almacenará en el sistema de archivos del teléfono y no en la tarjeta SD. Estos archivos no serán accesibles para el usuario promedio. Si los usuarios saben cómo habilitar la depuración de usb, entonces podrán acceder a ellos y realmente no hay forma de evitar esto.

1

Me tomó un tiempo para investigar acerca de los archivos de sistema del androide anteriores, pero casi siempre con Android-x86, descubrí que la carpeta/system dentro androide es de sólo lectura,

que es una imagen con formato es SFS formato, este es el formato de solo lectura de Linux, así que no creo que pueda copiar algo dentro de esta carpeta. No estoy seguro acerca de Root Android. Espero que te ayude.

Cuestiones relacionadas