Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 文件操作-shell命令还是api?_Java_Android - Fatal编程技术网

Java 文件操作-shell命令还是api?

Java 文件操作-shell命令还是api?,java,android,Java,Android,在android开发中,如果您想要创建、移动、删除甚至修改文件,您可以直接调用程序中的某些文件API,也可以使用shell命令 是否有一个关于何时使用哪个的一般指南 例如,您可以使用 File.delete() 要删除文件,还可以使用: Runtime.getRuntime().exec(new String[]{"su","rm","-f","/data/logger"}); 我不确定它们在执行方面是否相同,但我什么时候应该使用shell命令来处理此类操作?您不应该使用shell命令,因为

在android开发中,如果您想要创建、移动、删除甚至修改文件,您可以直接调用程序中的某些文件API,也可以使用shell命令

是否有一个关于何时使用哪个的一般指南

例如,您可以使用

File.delete()
要删除文件,还可以使用:

Runtime.getRuntime().exec(new String[]{"su","rm","-f","/data/logger"});

我不确定它们在执行方面是否相同,但我什么时候应该使用shell命令来处理此类操作?

您不应该使用shell命令,因为它容易受到攻击,例如,您的用户可以提供以
-
开头的文件名,这将被代码> > RM< /代码>解释为一个开关,而不是一个文件名。

请考虑在你的问题中添加更多的信息,后者是不可读的。而且
su
可执行文件仅存在于根设备上。经过专业解释,谢谢!是否可以用“?”之类的词来包装文件名?@AsianRyanReynolds是的,您可以,但我提到的只是一个关于如何将文件名解释为shell命令的示例。还有许多其他示例,如
。因此,不要使用shell。