0

.tempフォルダー内の拡張子として含まれていないファイルを読み取りたい。これには正規表現を使用したいと思います。これを行うには、正規表現で除外をどのように使用しますか?

4

4 に答える 4

2

気にしないで、テストを否定してください:

private static final Pattern NOTME = Pattern.compile("\\.temp$");

// in code

if (NOTME.matcher(input).find())
    // illegal!

しかし、実際には、次を使用する必要があります。

if (input.endsWith(".temp"))
    // illegal

また、Java 7 を使用している場合は、破棄Fileして とを使用しFilesてくださいPath

于 2013-06-12T11:42:26.373 に答える
0

正規表現ではないことは知っていますが、読みやすくするために使用します

!fileName.endsWith(".temp")
于 2013-06-12T11:42:00.657 に答える
0

Java の FilenameFilter インターフェイスに基づいて、次のようなことを試すことができます。

package dk.tbsalling;

import java.io.File;
import java.io.FilenameFilter;

public class FileDemo {
   public static void main(String[] args) {

      File f = null;
      File[] paths;

      try{      
         f = new File("d:/tmp");

         FilenameFilter fileNameFilter = new FilenameFilter() {

            @Override
            public boolean accept(File dir, String name) {
               return name.matches(".+(?<!\.temp)");
            }
         };

         paths = f.listFiles(fileNameFilter);

         for(File path:paths)
         {
            System.out.println(path);
         }
      }catch(Exception e){
         e.printStackTrace();
      }
   }
}
于 2013-06-12T11:43:57.757 に答える