gpt4 book ai didi

java - 如果要添加的文件不存在,addFilePattern 不会抛出 FileNotFoundException

转载 作者:行者123 更新时间:2023-11-30 10:25:50 27 4
gpt4 key购买 nike

我编写了一个 java 程序来推送到 git 存储库,我在其中一次推送特定文件而不是推送所有文件。

try {
git.add().addFilePattern("files\\file1.txt").call();
} catch (Exception e) {
e.printStackTrace();
}

但是如果 file1.txt 不存在,则不会进入 catch block 。如果我用 CLI Git 做同样的事情,它会给出异常

fatal: pathspec 'D:\mygit\files\\file1.txt' did not match any files

我想使用 JGit 在 Java 中捕获这个异常。

JGit 版本 4.6.0、Java 1.8、Windows 10

最佳答案

JGit 不会将传递不存在的路径 addFilepatern() 视为错误。因此,原因可能是该方法还接受文件名模式。这样的模式可能匹配也可能不匹配文件。

您必须自己检查文件是否存在。例如,使用 Java 文件 API

boolean fileExists = new File( repository.getWorkTree(), "file.txt" ).isFile();

或者通过 AddCommand::call() 返回的 DirCache,例如

DirCache dirCache = git.add().addFilePattern( "file.txt" ).call();
boolean fileExists = dircache.findEntry( "file.txt" ) >= 0;

关于java - 如果要添加的文件不存在,addFilePattern 不会抛出 FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45915125/

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