在Android的子目录中写入文件

时间:2010-03-31 11:08:53

标签: java android file-io filesystems

我正在尝试将文件保存在Android 1.5的子目录中。 我可以使用

成功创建目录
_context.GetFileStreamPath("foo").mkdir();

(_ context是我开始执行保存文件的Activity)但是如果我尝试在foo /中创建一个文件

_context.GetFileStreamPath("foo/bar.txt");

我得到一个例外,说我不能在文件名中包含目录分隔符(“/”)。

我在Android中缺少使用文件的东西......我想我可以使用标准的Java类,但它们似乎不起作用...... 我搜索了Android文档,但我不能很好的例子,谷歌也没有帮助我...

我问的是错误的问题(谷歌)......

你能帮我解决这个问题吗?

谢谢!

3 个答案:

答案 0 :(得分:3)

我明白我错过了什么。 Java File类工作得很好,你只需要传递实际写文件的绝对路径。

为了获得这个“root”目录,我使用了_context.getFilesDir()。这将为您提供应用程序的根目录。有了这个,我可以使用new File(root + "myFileName")或Sean Owen new File(rootDirectory, "myFileName")创建文件。

答案 1 :(得分:3)

您不能直接使用路径,但必须为每个目录创建一个文件对象。 我不明白为什么,但这是它的工作方式。

注意:此代码生成目录,您的可能不需要...

File file = context.getFilesDir();
file.mkdir();

String[] array = filePath.split("/");
for (int t = 0; t < array.length - 1; t++) {
    file = new File(file, array[t]);
    file.mkdir();
}

File f = new File(file, array[array.length - 1]);

RandomAccessFileOutputStream rvalue = new RandomAccessFileOutputStream(f, append);

答案 2 :(得分:2)

使用getDir()获取“foo”目录作为File对象的句柄,并从中创建类似new File(fooDir, "bar.txt")的内容。