gpt4 book ai didi

Android:当文件名有空格时设置文件权限时出现问题

转载 作者:行者123 更新时间:2023-11-30 04:45:13 28 4
gpt4 key购买 nike

有一个应用程序,我将 .png 图像存储在应用程序的缓存目录中,并且当我通过消息等共享这些文件时,我需要使每个人都可以临时读取这些文件(即 chmod 755)。

正如另一个线程中所建议的,我正在运行 Runtime.getRuntime.exec() 来执行此操作:

Runtime.getRuntime().exec("setperm chmod 755 /path/to/filename.png");

这很好用,当我过滤/和\时,任何名称都可以使用...当然,带空格的名称除外。这失败了:

Runtime.getRuntime().exec("setperm chmod 755 /path/to/file name.png");

因此,来自 linux,我尝试将文件路径用引号引起来,这在 linux 上有效,但仍然无法更改 Android 上的文件权限:

Runtime.getRuntime().exec("setperm chmod 755 \"/path/to/file name.png\"");
or
Runtime.getRuntime().exec("setperm chmod 755 '/path/to/file name.png'");

有什么想法吗?

谢谢,

保罗

最佳答案

Have an app where I store .png images in the app's cache directory, and as I am sharing these files via messaging, etc, I need to make the files readable temporarily by everyone (i.e. chmod 755).

不要将它们放在缓存目录中。使用 openFileOutput() 并设置 MODE_WORLD_READABLE

As suggested in another thread, I am running Runtime.getRuntime.exec() to do this:

向您建议的人是白痴。 Android 应用程序不应使用 exec()。 SDK 中没有您可以依赖的命令行二进制文件。


更新

related android-developers thread 中, Dianne Hackborn (@hackbod) 写道:

The recommended way to do this is to write a content provider, which the other app can call ContentResolver.openFileDescriptor() etc. It is actually really easy to write such a content provider -- it doesn't need a database or anything, just to implement ContentProvider.openFile().

Every situation I have seen where MODE_WORLD_* is used it causes more troubles than just writing a content provider. I regret having made that.

关于Android:当文件名有空格时设置文件权限时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5149739/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com