gpt4 book ai didi

使用SVN版本控制系统时的Java IO问题

转载 作者:行者123 更新时间:2023-12-01 16:35:23 24 4
gpt4 key购买 nike

我有一个 Java 程序,它提供了一个目录名称,使用 dirName.listFiles() 获取该目录中所有文件的列表,然后迭代每个文件并从中解析信息。

这些文件通常都是普通的文本文件,但我使用的是 SVN,并且我的 dirName 目录中似乎有一个名为 .svn 的目录,这导致我的程序失败,因为 .svn 是一个目录而不是文本文件。

现在,我可以使用 FileFilter 对象实现过滤器,但我实际上只期望文本文件位于最终程序的该目录中。

我的问题是:有没有办法在不使用 FileFilter 的情况下解决我的问题?我还认为我的程序忽略了我编写的其他程序中的 .svn 目录,所以我不确定为什么现在会出现问题。

提前致谢。

最佳答案

许多版本控制系统(不仅仅是 SVN)都会遇到这个问题,因为其中一些系统在磁盘上有文件,可以帮助识别工作副本的来源(SVN 为 .svn,clearcase 为 view.dat)。你真的应该实现一个 FileFilter 来排除这些,或者使用 commons-io 中的那些:

makeSvnAware

它是空安全的,所以如果你给它空输入,它只会为你返回一个 svn 过滤器。如果你给它另一个 IOFileFilter(FileFilter 的子接口(interface)),它只会返回一个在现有过滤器和 svn 过滤器之间执行 AND 操作的过滤器。

FileFilter svnFilter = FileFilterUtils.makeSvnAware(null);

关于使用SVN版本控制系统时的Java IO问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9757948/

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