java - 如何在Java中实现 "mklink/H"(硬链接(hard link))?

标签 java file-io hardlink mklink

我想创建一个从文件“C:\xxx.log”到“C:\mklink\xxx.log”的硬链接(hard link)。 在 cmd 中它当然可以工作,但我想为这个用例编写一个软件。

  • 所以必须找到现有的文件
  • 然后做一个硬链接(hard link)
  • 然后删除旧文件

我开始实现,但我只知道如何创建文件。在谷歌上,我没有找到任何关于 Java 的 mklink\H。

public void createFile() {
     boolean flag = false;

     // create File object
     File stockFile = new File("c://mklink/test.txt");

     try {
         flag = stockFile.createNewFile();
     } catch (IOException ioe) {
          System.out.println("Error while Creating File in Java" + ioe);
     }

     System.out.println("stock file" + stockFile.getPath() + " created ");
}

最佳答案

在 JAVA 中有 3 种创建硬链接(hard link)的方法。

  1. JAVA 1.7 支持硬链接(hard link)。

    http://docs.oracle.com/javase/tutorial/essential/io/links.html#hardLink

  2. JNA,JNA 允许您进行 native 系统调用。

    https://github.com/twall/jna

  3. JNI,你可以用C++创建一个硬链接(hard link),然后通过JAVA调用它。

希望这对您有所帮助。

关于java - 如何在Java中实现 "mklink/H"(硬链接(hard link))?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8573752/

相关文章:

java - Spring Integration http 出站网关和 UTF-8

php - 如何在 codeigniter 中写入新文件?

c - 标准输出上的数据显示错误 : C File Operation

c - 如何将内存中的结果放入文件 *.txt

python - 如何使用python识别硬链接(hard link)?

java - RecyclerView onScrolled 根本没有被触发

java - 操作 1 的 OnOptionsItemSelected 未显示新的警报对话框

linux - 从另一个存储库合并/拉取时强制版本控制不破坏硬链接(hard link)?

c# - 如何知道两个硬链接(hard link)是否指向同一个inode? (C#)

java - 如何用Java编写GUI进行逻辑设计?