在Android的子目录中写入文件

发布于 2024-08-27 01:48:00 字数 449 浏览 6 评论 0原文

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

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

(_context是我开始执行保存文件的活动)成功创建一个目录,但是如果我尝试在 foo/ 中创建一个文件,

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

我会得到一个异常,说我不能在文件中包含目录分隔符姓名 (”/”)。

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

我问了错误的问题(向谷歌)...

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

谢谢你!

I'm trying to save a file in a subdirectory in Android 1.5.
I can successfully create a directory using

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

(_context is the Activity where I start the execution of saving the file) but then if I try to create a file in foo/ by

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

I get a exception saying I can't have directory separator in a file name ("/").

I'm missing something of working with files in Android... I thought I could use the standard Java classes but they don't seem to work...
I searched the Android documentation but I couldn't fine example and google is not helping me too...

I'm asking the wrong question (to google)...

Can you help me out with this?

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

冷了相思 2024-09-03 01:48:00

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

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

I understood what I was missing.
Java File classes works just fine, you just have to pass the absolute path where you can actually write files.

To get this "root" directory I used _context.getFilesDir(). This will give you the root of you application. With this I can create file with new File(root + "myFileName") or as Sean Owen said new File(rootDirectory, "myFileName").

已下线请稍等 2024-09-03 01:48:00

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

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

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

You cannot use path directly, but you must make a file object about every directory.
I do not understand why, but this is the way it works.

NOTE: This code makes directories, yours may not need that...

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);
明天过后 2024-09-03 01:48:00

使用 getDir()File 对象的形式获取“foo”目录的句柄,并创建类似 new File(fooDir, "bar.txt" ) 来自它。

Use getDir() to get a handle on the "foo" directory as a File object, and create something like new File(fooDir, "bar.txt") from it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文