在java中使用Grepping文件路径

时间:2015-04-13 18:11:54

标签: java file path grep

我目前正在研究Gitlet,这是一个以Git为模型的版本控制系统。目前,我的提交存储在文件夹中,每个文件夹的提交ID都作为文件夹名称。如果尚未更改,则每个文件都需要“继承”到下一个提交,但是我无法将先前提交的内容复制到新提交中以节省空间。我通过在HashMap中存储文件(键)及其路径(值)来实现此继承。每个提交都有自己的HashMap,其中包含自己的继承文件。当用户添加文件时,截至目前,我刚刚发现我只考虑了用户实际位于找到文件的目录中的情况。我没有考虑用户是否在文件所在的目录之外。这带来了一个大问题,因为复制到hashmap的路径是<folder/folder2/file.txt = commits/3/folder/folder2/file.txt>,当我实际上只是想要{ {1}}

是否有一种“简单”的方式我可以这样做,以便复制的唯一内容是实际的文件名而不是文件夹/ folder2?

我目前正在复制这样的文件:

<file.txt = commits/3/file.txt>

其中stagedQueue是 try { String path = "./.gitlet/commits/" + commitID; for (String file : stagedQueue) { File temp = new File(path + file); Files.copy((new File(file).toPath()), (new File(path + "/" + file).toPath())); } } catch (IOException e) { //closes try and starts catch e.printStackTrace(); } //closes catch ,其中包含用户添加的文件以包含在下一次提交中

1 个答案:

答案 0 :(得分:1)

我不是100%正在寻找的东西,但如果你只想要文件名,那就是:

File().getName();
File().getPath();

然后你只需要玩一些游戏来获得正确的输出路径。