2010-04-19 244 views
5

如何将文件复制到Android中的文件系统(地点)?我怎样才能访问它?如何将文件复制到android的文件系统?

+1

这是一个编程问题或用户问题?你是从电脑复制*的吗?你的Android设备?到SD卡?如果连接到电脑,是否安装了SD卡? – 2010-04-19 14:40:00

+0

这是一个编程问题。我需要的是路径。 我想放一些文件,以便用户不会有任何访问权限。我认为这是最好的方式 – 2010-04-19 14:59:22

+0

我认为我理解你的问题,直到我阅读你的评论。你是否试图将文件写入文件系统(即在你的代码中运行Dalvik)还是你想部署它们(通过物理连接到主机)? – 2010-04-19 18:51:06

回答

1

您可以使用:

Environment.getExternalStorageDirectory() 

这会给你/sdcard如果您的设备有一个SD卡,或一些在其他情况下的不同。例如爱可视。

+0

我知道这个......但这不是我问的。 – 2010-04-19 15:00:20

0

您可以通过以点前缀它(例如:.myfile)可能隐藏在SD卡文件

+0

在这种情况下,用户可以将设备连接到计算机,然后查看文件。我对吗? – 2010-04-20 06:45:20

+0

如果他从Windows窗口中浏览SD卡是的。但是,如果你真的不希望用户混淆你的文件,请使用资源或原始资源。唯一的缺点是它是只读的。 也许你可以使用数据库呢? – Rorist 2010-04-20 07:49:46

11

拷贝文件从机器人到当地

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

复制文件从本地

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

+1如果你喜欢点击事物,你也可以通过DDMS应用程序来做到这一点,但这只是这些命令的GUI实现。 – 2010-04-19 18:49:53

+0

我不想复制到SD卡...我想复制到文件系统目录 – 2010-04-20 06:48:03

+0

我不认为你直接写入到android文件系统目录。它唯一可能的方式来自您正在处理的应用程序。每个应用程序在/ data/data/myApp中都有一个受保护的空间,这样一个应用程序就不能写入另一个应用程序文件夹。那么我现在有点与android开发脱节,所以我可能是错的。 – Raja 2010-04-20 14:58:46

2

我不知道这是否是你问,但这里是你的问题的另一种解释:

您可以将文件放置在开发计算机上项目的assets文件夹中。它们将被捆绑到apk文件中,然后通过AssetManager类访问它们。类似于服务或活动类别中的内容:

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

这将允许您阅读这些文件的内容。我不相信你可以写信给他们。如果您需要在应用程序的存储沙箱中读写文件,还有其他选项。这通过呼叫openFileOutput()完成。我应该注意,尽管用户总是可以通过ddms访问设备上的文件,但其他应用程序将无法访问存储在应用程序存储沙箱中的文件。

编辑基于您的评论,你可能想使用

OutputStream out = openFileOutput("outfile"); 

写在自己的代码文件。此代码必须从ActivityService(延伸到Context)中调用。该文件将存储在手机的文件系统中,而不是存储在SD卡上。这些文件不会被普通用户访问。如果用户知道如何启用USB调试,那么他们将能够访问它们,并且真的没有办法解决这个问题。

1

我花了一些时间来研究关于早期的Android的系统文件,但几乎总是与Android x86上,我发现里面的android的/系统文件夹是只读的,

它与格式的图像SFS格式,这是Linux的只读图像格式,所以我不认为你可以在这个文件夹内复制一些东西。我不知道根植的android。希望它能帮助你。

相关问题