2015-08-26 79 views
1

是否有任何api可用于使用java删除符号链接。 Files.delete(路径)没有解决。请发布您的建议。删除java中的符号链接

+0

不存在删除符号链接应该相同的方式工作作为一个正常的文件。你可以分享你的代码或应该抛出的异常,以防它不能正常工作。 –

+0

以何种方式“没有解决”? 'Files.delete()'应该删除一个符号链接OK。 –

+0

是断开的符号链接,即其目标不存在? – wero

回答

0

找到符号链接的更多信息here。如果你不能删除链接,你可以在Java中使用ProcessBuilder -class,并使用bash/cmd命令尝试它(取决于你使用的系统)。

ProcessBuilder pb = new ProcessBuilder("<bash you use>", "rm", "<filepath>"); 
Process p = pb.start(); 

但normaly可以删除符号链接:

Files.delete("path"); 

的目录必须是空的。如果Path是一个符号链接,那么链接将被删除,而不是它所代表的目标。

1

Files.delete(Path)在符号链接上工作完美。你的代码中应该有其他问题。

此代码示例工程(JAVA 8):

import java.io.IOException; 
import java.nio.file.Files; 
import java.nio.file.Paths; 
... 
String symLinkName = "/some/path/to/symlink"; 
try {    
    if(Files.exists(Paths.get(symLinkName))) {    
     Files.delete(Paths.get(symLinkName)); 
    } 
} catch (IOException e) { 
    log.info("Cannot delete symbolic link " + symLinkName); 
    e.printStackTrace(); 
} 

记住符号链接是一个UNIX的概念,并在Windows