2010-03-31 47 views
0

我试图将文件保存在Android 1.5的子目录中。 我可以成功地创建使用目录将文件写入Android的子目录中

_context.GetFileStreamPath("foo").mkdir(); 

(_context是我开始保存的文件执行的活动),但是,如果我尝试

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

创建Foo中的文件/我收到一个异常说我不能在文件名(“/”)中有目录分隔符。

我错过了一些在Android中使用文件的东西......我想我可以使用标准的Java类,但他们似乎没有工作... 我搜索了Android文档,但我无法正常工作例如与谷歌并没有帮助我太多...

我问错了问题(以谷歌)...

你能帮助我吗?

谢谢!

回答

3

我明白我错过了什么。 Java文件类的工作正常,你只需要传递绝对路径,你可以在其中写入文件。

为了得到这个“根”目录,我使用了_context.getFilesDir()。这会给你你应用程序的根源。有了这个,我可以创建文件new File(root + "myFileName")或肖恩欧文说new File(rootDirectory, "myFileName")

2

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

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);