相关疑难解决方法(0)

是否有"glob"类型模式的java.util.regex等价物?

是否有标准(最好是Apache Commons或类似的非病毒)库用于在Java中进行"glob"类型的匹配?当我不得不在Perl中做类似的事情时,我只是将所有的" ."改为" \."," *"改为" .*"和" ?"改为" ."等等,但是我想知道是否有人做了为我工作.

类似的问题:从glob表达式创建正则表达式

java glob

80
推荐指数
7
解决办法
3万
查看次数

将文件列在与Java中的模式匹配的目录中

我正在寻找一种方法来获取与给定目录中的模式(pref regex)匹配的文件列表.

我在网上找到了一个使用apache的commons-io包的教程,代码如下:

Collection getAllFilesThatMatchFilenameExtension(String directoryName, String extension)
{
  File directory = new File(directoryName);
  return FileUtils.listFiles(directory, new WildcardFileFilter(extension), null);
}
Run Code Online (Sandbox Code Playgroud)

但这只是返回一个基本集合(根据文档,它是一个集合java.io.File).有没有办法做到这一点,返回一个类型安全的通用集合?

java io

79
推荐指数
4
解决办法
10万
查看次数

Java:在指定文件夹中查找.txt文件

是否有内置的Java代码可以解析给定的文件夹并搜索.txt文件?

java file

53
推荐指数
4
解决办法
15万
查看次数

如何在JDK7中使用目录通配符

我一直在尝试使用JDK7中的新globbing功能,从文档和示例开始

我可以得到像我这样"glob:*.dat"的人

Files.walkFileTree(startingDir, finder);
Run Code Online (Sandbox Code Playgroud)

例如,但我无法使"**"语法正常工作.我希望能够创建类似的东西:

matcher = FileSystems.getDefault().getPathMatcher("glob:" + "foo/**/bar/*.dat");
Run Code Online (Sandbox Code Playgroud)

并希望得到一个简单的例子.我使用的是Windows 7.

更新:@Oleg和@JBNizet清楚地表明"/"语法与操作系统无关.请注意,Javadocs建议也可以使用依赖于操作系统的语法(需要)

仍有问题:已采取@Nizet并编辑如下:

@Test
public void testStackoverflowGlobber() throws IOException {
    final PathMatcher matcher =
 FileSystems.getDefault().getPathMatcher("glob:*.cml");
        Files.walkFileTree(Paths.get("d:/petermr-workspace/jumbo-converters/jumbo-converters-cli/src/test/resources"), new SimpleFileVisitor<Path>() {
            @Override
            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                System.out.println("try>> "+file);
                if (matcher.matches(file)) {
                    System.out.println("MATCHES>>"+file);
                }
                return FileVisitResult.CONTINUE;
            }
        @Override
        public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {
            return FileVisitResult.CONTINUE;
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

这给出了如下输出:

try>> d:\petermr-workspace\jumbo-converters\jumbo-converters-cli\src\test\resources\examples\cdx\r19.cdx
try>> d:\petermr-workspace\jumbo-converters\jumbo-converters-cli\src\test\resources\examples\cdx\r19.cdxml
try>> d:\petermr-workspace\jumbo-converters\jumbo-converters-cli\src\test\resources\examples\cdx\r19.cml
try>> …
Run Code Online (Sandbox Code Playgroud)

java glob java-7 java.nio.file

19
推荐指数
2
解决办法
1万
查看次数

java文件名过滤模式

我需要实施

File[] files = getFiles( String folderName, String ptrn );
Run Code Online (Sandbox Code Playgroud)

其中ptrn是一个命令提示符样式模式,如"*2010*.txt"

我熟悉FilenameFilter类,但无法实现, public boolean accept(File dir, String filename) 因为String.matches()不接受这样的模式.

谢谢!

java regex filenames filter

9
推荐指数
1
解决办法
4万
查看次数

以java中的特定字母开头的文件列表

我在相关目录(应用程序运行的目录)中有一些文件以'@'开头,我需要在java中打开所有这些文件.告诉我一个完成它的方法.如果它有帮助,我正在研究netbeans.它们基本上是.ser文件.所以我必须获取它们中的对象

java serialization file

5
推荐指数
1
解决办法
1万
查看次数

Scala - 计算目录中具有已定义文件扩展名的文件数

嗨,我有一个脚本批量转换pdfs为一系列图像,我想做的是计算目录中扩展名为.jpg的文件总数.

到目前为止我有

for (file <- new File(path).listFiles) {

     /* DO SOMETHING */

}
Run Code Online (Sandbox Code Playgroud)

有没有一种紧凑的方式来做到这一点而不循环遍历每个文件?

在此先感谢,非常感谢:)

scala file

4
推荐指数
1
解决办法
3126
查看次数

如何使用sqlContext加载多个镶木地板文件?

我正在尝试在spark中加载一个镶木地板文件目录,但似乎无法让它工作......这似乎有效:

val df = sqlContext.load("hdfs://nameservice1/data/rtl/events/stream/loaddate=20151102")
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

val df = sqlContext.load("hdfs://nameservice1/data/rtl/events/stream/loaddate=201511*")
Run Code Online (Sandbox Code Playgroud)

它让我回到了这个错误:

java.io.FileNotFoundException: File does not exist: hdfs://nameservice1/data/rtl/events/stream/loaddate=201511*
Run Code Online (Sandbox Code Playgroud)

我如何使用外卡?

hadoop apache-spark

3
推荐指数
1
解决办法
6964
查看次数

根据Java中的部分文件名检查文件是否存在

我选择使用线程中的isFile()方法,方法需要文件的绝对路径。

boolean doesFileExist = new File("C:/downloads/MyFile.txt").isFile();
Run Code Online (Sandbox Code Playgroud)

我已经使用 Selenium 和 Robot 类将文本文件保存到本地目录,但文件名是动态的:MyTextFile_YYYYMMDDHHMMSS.txt. 但是,MyTextFile_始终保持不变。我只想检查部分文件名匹配。

什么是优雅的方式来做到这一点?

java file

2
推荐指数
1
解决办法
6979
查看次数