【发布时间】:2016-01-05 09:32:10
【问题描述】:
我想在我的应用程序中以编程方式创建符号链接。 Android (4.4+) 可以吗?
在 Java 中我们可以使用:
Path newLink = ...;
Path target = ...;
try {
Files.createSymbolicLink(newLink, target);
} catch (IOException x) {
System.err.println(x);
} catch (UnsupportedOperationException x) {
// Some file systems do not support symbolic links.
System.err.println(x);
}
来自java.nio.file,但我应该在 Android 中使用什么?
https://docs.oracle.com/javase/tutorial/essential/io/links.html
编辑:
我使用reflection/native code/OS.symlink() method 进行了测试,但没有任何效果。我总是得到 Operation not allowed (EPERM)。我认为您必须拥有创建符号链接的 root 权限。
问题可能在于/mnt/sdcard 是一个包裹/data/media/xxx 的保险丝垫片。所以我开始使用/data/media/xxx,但我总是得到Permission denied
我认为是root权限的问题。
【问题讨论】:
-
我尝试了反射,但它不起作用:
android.system.ErrnoException: symlink failed: EPERM (Operation not permitted)。我会试试原生代码。 -
你试过stackoverflow.com/questions/27726428/…上的其他答案吗??
Os.symlink(originalFilePath,symLinkFilePath);? -
我在 Android 4.4(API 级别 19)中也需要它。
-
我也尝试过
Os.symlink(originalFilePath,symLinkFilePath);,但我在三星 Galaxy S5 上又得到了symlink failed: EPERM (Operation not permitted)
标签: java android android-ndk filesystems symlink