gpt4 book ai didi

java - LinkOption.NOFOLLOW_LINKS 的含义是什么以及何时使用它?

转载 作者:行者123 更新时间:2023-12-01 16:18:33 29 4
gpt4 key购买 nike

我想使用 notExists(Path path, LinkOption... options) 检查目录是否存在,并且我对 LinkOption.NOFOLLOW_LINKS 感到困惑,尽管在我用谷歌搜索后,我仍然不太明白何时使用它。这是我的代码:

import java.io.*; 
import java.nio.file.Files;
import java.nio.file.*;
import java.util.ArrayList;

public class Test
{
public static void main(String[] args) throws IOException
{
Path source = Paths.get("Path/Source");
Path destination = Paths.get("Path/Destination");
ArrayList<String> files = new ArrayList<String>();
int retry = 3;

// get files inside source directory
files = getFiles(source);

// move all files inside source directory
for (int j=0; j < files.size(); j++){
moveFile(source,destination,files.get(j),retry);
}
}

// move file to destination directory
public static void moveFile(Path source, Path destination, String file, int retry){
while (retry>0){
try {
// if destination path not exist, create directory
if (Files.notExists(destination, LinkOption.NOFOLLOW_LINKS)) {
// make directory
Files.createDirectories(destination);
}

// move file to destination path
Path temp = Files.move(source.resolve(file),destination.resolve(file));

// if successfully, break
if(temp != null){
break;
}
// else, retry
else {
--retry;
}

} catch (Exception e){
// retry if error occurs
--retry;
}
}
}

// get all file names in source directory
public static ArrayList<String> getFiles(Path source){

ArrayList<String> filenames = new ArrayList<String>();
File folder = new File(source.toString());
File[] listOfFiles = folder.listFiles(); // get all files inside the source directory

for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
filenames.add(listOfFiles[i].getName()); // add file's name into arraylist
}
}
return filenames;
}
}

使用LinkOption.NOFOLLOW_LINKS和不使用的结果是相同的(文件被传输到目的地)。所以,我猜对于我的情况,我可以忽略链接选项吗?另外,在什么情况下我需要它?谢谢!

最佳答案

So, Im guessing for my case, i can ignore the Link option?

仅当链接存在时您才能访问该链接。

因此,如果您正在测试以确保目录不存在,则会有两种结果。

  1. 它存在,因此无需点击该链接。
  2. 它不存在,所以没有什么可遵循的。

in what situation will i be needing that?

您是否在我提供给您的链接中查看了我的答案?我试图举一个简单的例子。

关于java - LinkOption.NOFOLLOW_LINKS 的含义是什么以及何时使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62335872/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com