2017-07-04 116 views
12

我正在创建一个应用程序,我希望在Android外部存储器文件系统中使用硬链接和符号链接。我一直在使用的命令试图在Android中创建硬链接和符号链接

Os.link("oldpath", "newpath"); 
Os.link("oldpath", "newpath"); 

然而,当我试试这个,我得到这个错误:

link failed: EPERM (Operation not permitted) 

这让我觉得,你需要root权限,虽然我已经看到别人这样做同样的事情,我不认为如果他们需要root,他们会拥有这些命令。有任何想法吗?

+1

您尝试创建硬链接的路径。 –

+0

我想你应该从这里检查步骤https://stackoverflow.com/a/30387667/3800377 –

+0

@KamilMahmood我试图在外部存储上创建它 –

回答

10

对Os.link的调用失败,因为Android默认使用FAT32文件系统作为外部存储。 FAT32文件系统不支持硬链接和软链接,这就是为什么你得到操作不允许的错误。

EPERM The filesystem containing oldpath and newpath does not support the creation of hard links.

你可以阅读有关链接系统调用的更多信息here

此外,你可以不假硬链接或准确地对FAT32软链接。另外请注意,在Android中创建硬链接需要root权限。

+0

那么有没有什么办法可以使我的硬链接或类似的东西,或者是我的情况下呈现模拟? @KamilMahmood –

+0

@AshwinKudva我已经更新了答案 –