Index: tmp/org.txm.core.tests/src/org/txm/core/tests/junit/PluginPreferences.java
===================================================================
--- tmp/org.txm.core.tests/src/org/txm/core/tests/junit/PluginPreferences.java	(revision 1369)
+++ tmp/org.txm.core.tests/src/org/txm/core/tests/junit/PluginPreferences.java	(revision 1370)
@@ -4,6 +4,8 @@
 
 import java.io.File;
 
+import org.txm.utils.io.IOUtils;
+
 public class PluginPreferences extends TXMPluginTest {
 
 	public void RCPPluginTest(File projectDirectory, String name, String packagePath) {
@@ -20,7 +22,7 @@
 		}
 		
 		// test content
-		File[] files = preferencePackageDirectory.listFiles();
+		File[] files = preferencePackageDirectory.listFiles(IOUtils.FILTER_HIDDEN);
 		if (files == null) {
 			error("No preference class file.");
 			return;
Index: tmp/org.txm.core.tests/src/org/txm/core/tests/junit/PluginMessages.java
===================================================================
--- tmp/org.txm.core.tests/src/org/txm/core/tests/junit/PluginMessages.java	(revision 1369)
+++ tmp/org.txm.core.tests/src/org/txm/core/tests/junit/PluginMessages.java	(revision 1370)
@@ -55,7 +55,7 @@
 		}
 
 		// test content
-		File[] files = messagesPackageDirectory.listFiles();
+		File[] files = messagesPackageDirectory.listFiles(IOUtils.FILTER_HIDDEN);
 		if (files == null) {
 			error("No messages class file.");
 			return;
Index: tmp/org.txm.core.tests/src/org/txm/core/tests/junit/PluginExtPoints.java
===================================================================
--- tmp/org.txm.core.tests/src/org/txm/core/tests/junit/PluginExtPoints.java	(revision 1369)
+++ tmp/org.txm.core.tests/src/org/txm/core/tests/junit/PluginExtPoints.java	(revision 1370)
@@ -36,7 +36,7 @@
 	private void testDeclaredExtPoints(File projectDirectory) throws IOException {
 		File schemaDirectory = new File(projectDirectory, "schema");
 		if (schemaDirectory.exists()) {
-			for (File schemaXML : schemaDirectory.listFiles()) {
+			for (File schemaXML : schemaDirectory.listFiles(IOUtils.FILTER_HIDDEN)) {
 				if (schemaXML.isDirectory()) continue;
 				ArrayList<String> ids = IOUtils.findWithGroup(schemaXML, "<meta.schema plugin=\"[^\"]+\" id=\"([^\"]+)\" name=\"[^\"]+\"/>", true);
 				ArrayList<String> classes = IOUtils.findWithGroup(schemaXML, "<meta.attribute kind=\"java\" basedOn=\"([^:]+):\"/>", true);
@@ -88,7 +88,7 @@
 
 				File schemaDirectory = new File(projectDirectory, "schema");
 				if (schemaDirectory.exists()) {
-					for (File schemaXML : schemaDirectory.listFiles()) {
+					for (File schemaXML : schemaDirectory.listFiles(IOUtils.FILTER_HIDDEN)) {
 						if (!schemaXML.isFile()) continue;
 						if (!schemaXML.getName().endsWith(".exsd")) continue;
 						ArrayList<String> ids = IOUtils.findWithGroup(schemaXML, "<meta.schema plugin=\"[^\"]+\" id=\"([^\"]+)\" name=\"[^\"]+\"/>", true);
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/importer/cwb/FixMilestoneDeclarations.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/importer/cwb/FixMilestoneDeclarations.java	(revision 1369)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/importer/cwb/FixMilestoneDeclarations.java	(revision 1370)
@@ -9,6 +9,8 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 
+import org.txm.utils.io.IOUtils;
+
 /**
  * Remove milestone declarations and index files. Milestones are empty structures that cannot be used with CQL
  * 
@@ -56,7 +58,7 @@
 		reader.close();
 		if (debug) System.out.println("Structures: "+structures);
 
-		File[] files = dataDirectory.listFiles();
+		File[] files = dataDirectory.listFiles(IOUtils.FILTER_HIDDEN);
 		if (files == null) return false;
 
 		//removing empty data files
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/importer/cwb/PatchCwbRegistry.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/importer/cwb/PatchCwbRegistry.java	(revision 1369)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/importer/cwb/PatchCwbRegistry.java	(revision 1370)
@@ -282,7 +282,7 @@
 			System.out.println("rename "+oldname+".* files to "+newname+".*"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 			File datadir = new File(datapath);
 			if (datadir.exists()) {
-				for (File f : datadir.listFiles())
+				for (File f : datadir.listFiles(IOUtils.FILTER_HIDDEN))
 					if (f.getName().startsWith(oldname+".")) //$NON-NLS-1$
 						f.renameTo(new File(f.getParent(), f.getName().replace(oldname+".", newname+"."))); //$NON-NLS-1$ //$NON-NLS-2$
 			}
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/importer/cwb/CwbEncode.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/importer/cwb/CwbEncode.java	(revision 1369)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/importer/cwb/CwbEncode.java	(revision 1370)
@@ -328,7 +328,7 @@
 			return;
 		}
 
-		for (File corpus : corpora.listFiles()) {
+		for (File corpus : corpora.listFiles(IOUtils.FILTER_HIDDEN)) {
 			if (!corpus.isDirectory()) continue;
 			
 			System.out.println(TXMCoreMessages.bind(CQPSearchEngineCoreMessages.processingCorpus, corpus.getName()));
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPSearchEngine.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPSearchEngine.java	(revision 1369)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPSearchEngine.java	(revision 1370)
@@ -23,6 +23,7 @@
 import org.txm.searchengine.cqp.corpus.query.CQLQuery;
 import org.txm.utils.OSDetector;
 import org.txm.utils.Sh;
+import org.txm.utils.io.IOUtils;
 import org.txm.utils.logger.Log;
 
 public class CQPSearchEngine extends SearchEngine {
@@ -71,16 +72,15 @@
 			System.out.println("Error: Toolbox is not correctly initialized. Aborting CQP engine start...");
 			return false;
 		}
-		for (File binDir : wl.listFiles()) {
+		for (File binDir : wl.listFiles(IOUtils.FILTER_HIDDEN)) {
 			if (!binDir.isDirectory()) continue;
-			if (binDir.isHidden()) continue;
 			if (binDir.getName().startsWith(".")) continue;
 			if (binDir.getName().startsWith("~")) continue;
 			
 			File registryDir = new File(binDir, "registry");
 			if (!registryDir.isDirectory()) continue;
 			
-			File[] files = registryDir.listFiles();
+			File[] files = registryDir.listFiles(IOUtils.FILTER_HIDDEN);
 			if (files != null && files.length > 0) {
 				reg_path += path_separator + registryDir.getAbsolutePath();
 				for (File registryFile : files) {
Index: tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/GroovyImportEngine.java
===================================================================
--- tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/GroovyImportEngine.java	(revision 1369)
+++ tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/GroovyImportEngine.java	(revision 1370)
@@ -10,6 +10,7 @@
 import org.txm.core.engines.ImportEngines;
 import org.txm.core.engines.ScriptedImportEngine;
 import org.txm.objects.Project;
+import org.txm.utils.io.IOUtils;
 
 public class GroovyImportEngine extends ImportEngine {
 
@@ -27,9 +28,8 @@
 		if (!importsPackageDirectory.exists()) {
 			return false;
 		}
-		for (File dir : importsPackageDirectory.listFiles()) {
+		for (File dir : importsPackageDirectory.listFiles(IOUtils.FILTER_HIDDEN)) {
 			if (!dir.isDirectory()) continue;
-			if (dir.isHidden()) continue;
 			
 			String name = dir.getName();
 			File loader = new File(dir, name+"Loader.groovy");
Index: tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/ExternalizationFilesUpdater.java
===================================================================
--- tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/ExternalizationFilesUpdater.java	(revision 1369)
+++ tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/ExternalizationFilesUpdater.java	(revision 1370)
@@ -55,6 +55,8 @@
 import java.util.LinkedList;
 import java.util.List;
 
+import org.txm.utils.io.IOUtils;
+
 // TODO: Auto-generated Javadoc
 /**
  * Tool to update the key of externalization files xxxx_fr.properties
@@ -278,7 +280,7 @@
 			File current = files.removeFirst();
 			if (current.isDirectory() && !current.getName().equals("bin")) {
 				List<File> currentpfiles = new ArrayList<File>();
-				for (File sfile : current.listFiles()) {
+				for (File sfile : current.listFiles(IOUtils.FILTER_HIDDEN)) {
 					if (sfile.isDirectory())
 						files.add(sfile);
 					else if(sfile.getName().endsWith(".properties") && (sfile.getName().startsWith("messages") || sfile.getName().startsWith("bundle")) )
@@ -303,7 +305,7 @@
 		String userdir = System.getProperty("user.home");
 		File workspaceDir = new File(userdir, "workspace047/org.txm.annotation.urs.rcp");
 		
-		for (File project : workspaceDir.listFiles()) {
+		for (File project : workspaceDir.listFiles(IOUtils.FILTER_HIDDEN)) {
 			if (!project.isDirectory()) continue;
 			if (project.isHidden()) continue;
 		//	if (!project.getName().endsWith(".rcp")) continue;
Index: tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/i18n/ExternalizationFilesUpdater.groovy
===================================================================
--- tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/i18n/ExternalizationFilesUpdater.groovy	(revision 1369)
+++ tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/i18n/ExternalizationFilesUpdater.groovy	(revision 1370)
@@ -47,7 +47,9 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStreamReader;
-import java.util.LinkedList;
+import java.util.LinkedList;
+
+import org.txm.utils.io.IOUtils
 
 // TODO: Auto-generated Javadoc
 /**
@@ -268,7 +270,7 @@
 			if(current.isDirectory())
 			{
 				List<String> currentpfiles = [];
-				for(File sfile : current.listFiles())
+				for(File sfile : current.listFiles(IOUtils.FILTER_HIDDEN))
 				{
 					if(sfile.isDirectory())
 						files.add(sfile);
Index: tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/i18n/MergeExternalizedStringFiles.groovy
===================================================================
--- tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/i18n/MergeExternalizedStringFiles.groovy	(revision 1369)
+++ tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/i18n/MergeExternalizedStringFiles.groovy	(revision 1370)
@@ -3,6 +3,7 @@
 import java.io.File;
 import org.eclipse.osgi.util.NLS;
 import org.txm.utils.DeleteDir;
+import org.txm.utils.io.IOUtils
 
 /**
  * Scan for *.properties files and merge them into one
@@ -33,7 +34,7 @@
 				continue;
 			//System.out.println("Dir: "+dir);
 			externalizeMessages = new ArrayList<File>();
-			for (File f : dir.listFiles()) {
+			for (File f : dir.listFiles(IOUtils.FILTER_HIDDEN)) {
 				if (f.getName() == "Messages.java")
 					messageClass = f
 				if (f.getName() =~ "messages(_..)?\\.properties")
@@ -89,7 +90,7 @@
 			if (current.isDirectory() && !current.getName().startsWith(".")) {
 				//println "add dir: "+current
 				List<String> currentpfiles = [];
-				for (File sfile : current.listFiles()) {
+				for (File sfile : current.listFiles(IOUtils.FILTER_HIDDEN)) {
 					if (sfile.isDirectory())
 						files.add(sfile);
 				}
Index: tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/i18n/PluginMessagesManager.java
===================================================================
--- tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/i18n/PluginMessagesManager.java	(revision 1369)
+++ tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/i18n/PluginMessagesManager.java	(revision 1370)
@@ -199,7 +199,7 @@
 
 		if (this.javaMessageFile != null) {
 
-			File[] propFiles = javaMessageFile.getParentFile().listFiles();
+			File[] propFiles = javaMessageFile.getParentFile().listFiles(IOUtils.FILTER_HIDDEN);
 			for (File propFile : propFiles) {
 				String name = propFile.getName();
 				if (!name.endsWith(".properties")) continue;
@@ -255,7 +255,7 @@
 
 				File osgiInf = new File(projectDirectory, "OSGI-INF/l10n");
 				if (osgiInf.exists()) {
-					for (File propFile : osgiInf.listFiles()) {
+					for (File propFile : osgiInf.listFiles(IOUtils.FILTER_HIDDEN)) {
 						if (propFile.getName().startsWith("bundle") && propFile.getName().endsWith(".properties")) {
 							Properties props = new Properties();
 							props.load(IOUtils.getReader(propFile));
@@ -352,7 +352,7 @@
 			return null;
 		}
 
-		for (File messagesJavaFile : messagesPackageDir.listFiles()) {
+		for (File messagesJavaFile : messagesPackageDir.listFiles(IOUtils.FILTER_HIDDEN)) {
 			if (messagesJavaFile.isDirectory()) continue;
 			if (!messagesJavaFile.getName().endsWith("Messages.java")) continue;
 			return messagesJavaFile;
@@ -376,7 +376,7 @@
 	//			return null;
 	//		}
 	//
-	//		for (File messagesJavaFile : messagesPackageDir.listFiles()) {
+	//		for (File messagesJavaFile : messagesPackageDir.listFiles(IOUtils.FILTER_HIDDEN)) {
 	//			if (messagesJavaFile.isDirectory()) continue;
 	//			if (!messagesJavaFile.getName().endsWith("Messages.java")) continue;
 	//			return messagesJavaFile;
@@ -726,7 +726,7 @@
 	 * Parses the specified path and stores a list of the source files. 
 	 */
 	private void createSourceFilesList(File path)	{
-		File[] list = path.listFiles();
+		File[] list = path.listFiles(IOUtils.FILTER_HIDDEN);
 
 		if (list == null) {
 			return;
Index: tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/i18n/WorkspaceMessagesManager.java
===================================================================
--- tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/i18n/WorkspaceMessagesManager.java	(revision 1369)
+++ tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/i18n/WorkspaceMessagesManager.java	(revision 1370)
@@ -105,7 +105,7 @@
 
 		System.out.println("Initializing project messages...");
 		ArrayList<File> files = new ArrayList<File>();
-		for (File project : workspaceLocation.listFiles()) {
+		for (File project : workspaceLocation.listFiles(IOUtils.FILTER_HIDDEN)) {
 			if (!project.isDirectory()) continue;
 			if (project.isHidden()) continue;
 			if (!project.getName().startsWith("org.txm")) continue;
Index: tmp/org.txm.translate.rcp/.~lock.messages_fr.ods#
===================================================================
--- tmp/org.txm.translate.rcp/.~lock.messages_fr.ods#	(revision 0)
+++ tmp/org.txm.translate.rcp/.~lock.messages_fr.ods#	(revision 1370)
@@ -0,0 +1 @@
+,mdecorde,matthieuPC,13.11.2018 16:47,file:///home/mdecorde/.config/libreoffice/4;
\ No newline at end of file
Index: tmp/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/conversion/CorpusRuledConvertion.java
===================================================================
--- tmp/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/conversion/CorpusRuledConvertion.java	(revision 1369)
+++ tmp/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/conversion/CorpusRuledConvertion.java	(revision 1370)
@@ -61,7 +61,7 @@
 			System.out.println("'"+corpus.getName()+"' corpus directory not found in "+txmDirectory.getAbsolutePath());
 			return false;
 		}
-		File[] files = txmCorpusDirectory.listFiles();
+		File[] files = txmCorpusDirectory.listFiles(IOUtils.FILTER_HIDDEN);
 		if (files == null || files.length == 0) {
 			System.out.println("No file in "+txmCorpusDirectory);
 			return false;
Index: tmp/org.txm.treetagger.core/src/org/txm/importer/xmltxm/AnnotateWTC.groovy
===================================================================
--- tmp/org.txm.treetagger.core/src/org/txm/importer/xmltxm/AnnotateWTC.groovy	(revision 1369)
+++ tmp/org.txm.treetagger.core/src/org/txm/importer/xmltxm/AnnotateWTC.groovy	(revision 1370)
@@ -38,6 +38,7 @@
 import org.txm.stat.utils.ConsoleProgressBar
 import org.txm.utils.DeleteDir;
 import org.txm.utils.LangDetector;
+import org.txm.utils.io.IOUtils
 import org.txm.utils.treetagger.TreeTagger
 
 // TODO: Auto-generated Javadoc
@@ -123,7 +124,7 @@
 		annotDir.mkdir();
 
 		//BUILD TT FILE READY TO BE TAGGED
-		List<File> files = txmDir.listFiles()
+		List<File> files = txmDir.listFiles(IOUtils.FILTER_HIDDEN)
 
 		// get model file and check it
 		File modelfile = new File(Toolbox.getPreference(Toolbox.TREETAGGER_MODELS_PATH), modelfilename);
Index: tmp/org.txm.treetagger.core/src/org/txm/importer/xmltxm/Annotate.groovy
===================================================================
--- tmp/org.txm.treetagger.core/src/org/txm/importer/xmltxm/Annotate.groovy	(revision 1369)
+++ tmp/org.txm.treetagger.core/src/org/txm/importer/xmltxm/Annotate.groovy	(revision 1370)
@@ -41,6 +41,7 @@
 import org.txm.stat.utils.ConsoleProgressBar;
 import org.txm.treetagger.core.preferences.TreeTaggerPreferences
 import org.txm.utils.LangDetector;
+import org.txm.utils.io.IOUtils
 import org.txm.utils.logger.Log;
 import org.txm.utils.treetagger.TreeTagger
 
@@ -308,7 +309,7 @@
 		ArrayList<String> milestones = [];
 
 		//BUILD TT FILE READY TO BE TAGGED
-		List<File> files = txmDir.listFiles()
+		List<File> files = txmDir.listFiles(IOUtils.FILTER_HIDDEN)
 
 		println("Building TT source files ("+files.size()+") from directory "+txmDir)
 		ConsoleProgressBar cpb = new ConsoleProgressBar(files.size())
@@ -337,7 +338,7 @@
 		//Convert encoding if needed
 
 		//APPLY TREETAGGER
-		files = new File(binDir, "treetagger").listFiles()
+		files = new File(binDir, "treetagger").listFiles(IOUtils.FILTER_HIDDEN)
 		println("Applying $modelfilename TreeTagger model on dir: "+new File(binDir, "treetagger")+ " ("+files.size()+" files)")
 		if (files == null || files.size() == 0)
 			return false;
@@ -400,7 +401,7 @@
 		}
 
 		initTTOutfileInfos(binDir, modelfile, modelfilename);
-		files = new File(binDir, "treetagger").listFiles()// now contains the result files of TT
+		files = new File(binDir, "treetagger").listFiles(IOUtils.FILTER_HIDDEN)// now contains the result files of TT
 		println "Building stdoff files ("+files.size()+") from dir:"+new File(binDir, "treetagger")+" to "+new File(binDir, "annotations");
 		if (files == null || files.size() == 0)
 			return false;
@@ -416,8 +417,8 @@
 		if (cancelNow) return;
 
 		//INJECT ANNOTATIONS
-		List<File> interpfiles = new File(binDir, "annotations").listFiles();
-		List<File> txmfiles = txmDir.listFiles();
+		List<File> interpfiles = new File(binDir, "annotations").listFiles(IOUtils.FILTER_HIDDEN);
+		List<File> txmfiles = txmDir.listFiles(IOUtils.FILTER_HIDDEN);
 		if (txmfiles == null) {
 			println "No file to annotate in "+txmDir.getAbsolutePath()
 			return false;
@@ -480,7 +481,7 @@
 			return true;
 		}
 
-		List<File> listfiles = txmDir.listFiles();
+		List<File> listfiles = txmDir.listFiles(IOUtils.FILTER_HIDDEN);
 
 		//cleaning
 		File annotDir = new File(binDir,"annotations");
@@ -497,7 +498,7 @@
 		int coresToUse = Math.max(1.0, cores * 0.7)
 		ExecutorService pool = Executors.newFixedThreadPool(coresToUse)
 
-		def files = txmDir.listFiles()
+		def files = txmDir.listFiles(IOUtils.FILTER_HIDDEN)
 		ConsoleProgressBar cpb = new ConsoleProgressBar(files.size())
 		for (File teiFile : files) {
 			int counter = 1;
Index: tmp/org.txm.core/src/java/org/txm/importer/scripts/filters/CatalogManager.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/importer/scripts/filters/CatalogManager.java	(revision 1369)
+++ tmp/org.txm.core/src/java/org/txm/importer/scripts/filters/CatalogManager.java	(revision 1370)
@@ -32,6 +32,7 @@
 
 import org.eclipse.osgi.util.NLS;
 import org.txm.core.messages.TXMCoreMessages;
+import org.txm.utils.io.IOUtils;
 
 // TODO: Auto-generated Javadoc
 /**
@@ -57,7 +58,7 @@
 			System.out
 					.println(NLS.bind(TXMCoreMessages.managerErrorDuringInitializationColonP0NotFound, path)); 
 		else {
-			File[] list = home.listFiles();
+			File[] list = home.listFiles(IOUtils.FILTER_HIDDEN);
 			for (File f : list)
 				this.put(f.getName(), new Catalog(f.getPath()));
 		}
Index: tmp/org.txm.core/src/java/org/txm/importer/scripts/filters/FilterManager.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/importer/scripts/filters/FilterManager.java	(revision 1369)
+++ tmp/org.txm.core/src/java/org/txm/importer/scripts/filters/FilterManager.java	(revision 1370)
@@ -32,6 +32,7 @@
 
 import org.eclipse.osgi.util.NLS;
 import org.txm.core.messages.TXMCoreMessages;
+import org.txm.utils.io.IOUtils;
 
 // TODO: Auto-generated Javadoc
 /**
@@ -63,7 +64,7 @@
 			System.out
 					.println(NLS.bind(TXMCoreMessages.filterManagerErrorColonInitializationP0NotFound, path)); 
 		else {
-			File[] list = home.listFiles();
+			File[] list = home.listFiles(IOUtils.FILTER_HIDDEN);
 			for (File f : list)
 				if (f.isDirectory()) {
 					this.hashtable.put(f.getName(), f.getPath());
Index: tmp/org.txm.core/src/java/org/txm/importer/ApplyXsl2.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/importer/ApplyXsl2.java	(revision 1369)
+++ tmp/org.txm.core/src/java/org/txm/importer/ApplyXsl2.java	(revision 1370)
@@ -502,7 +502,7 @@
 	 */
 	public static boolean processWithMultipleXSL(File[] filesToProcess, File xslDirectory, HashMap<String, Object> xslParams) throws TransformerException, IOException {
 		if (xslDirectory.exists()) {
-			File[] xslFiles = xslDirectory.listFiles();
+			File[] xslFiles = xslDirectory.listFiles(IOUtils.FILTER_HIDDEN);
 			Arrays.sort(xslFiles);
 			return processWithMultipleXSL(filesToProcess, xslFiles, xslParams);
 		} else {
@@ -557,7 +557,7 @@
 		assert(srcdirectory.canRead());
 		assert(srcdirectory.canExecute());
 
-		File[] files = srcdirectory.listFiles();
+		File[] files = srcdirectory.listFiles(IOUtils.FILTER_HIDDEN);
 		System.out.println("process : "+srcdirectory+"/*");
 		System.out.println("with : "+xslfile);
 		long bigstart = System.currentTimeMillis();
Index: tmp/org.txm.core/src/java/org/txm/importer/Convert5To6.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/importer/Convert5To6.java	(revision 1369)
+++ tmp/org.txm.core/src/java/org/txm/importer/Convert5To6.java	(revision 1370)
@@ -14,6 +14,7 @@
 import org.txm.objects.BaseOldParameters;
 import org.txm.objects.Page;
 import org.txm.utils.io.FileCopy;
+import org.txm.utils.io.IOUtils;
 import org.txm.utils.xml.DomUtils;
 import org.txm.utils.zip.Zip;
 import org.w3c.dom.Document;
@@ -85,12 +86,12 @@
 			return false;
 		}
 
-		return REGISTRY.listFiles().length > 0;
+		return REGISTRY.listFiles(IOUtils.FILTER_HIDDEN).length > 0;
 	}
 
 	private boolean process() throws Exception {
 		System.out.println(TXMCoreMessages.processing);
-		String corpusname = REGISTRY.listFiles()[0].getName().toUpperCase();
+		String corpusname = REGISTRY.listFiles(IOUtils.FILTER_HIDDEN)[0].getName().toUpperCase();
 
 		// create the corpus directories
 		File HTMLc = new File(HTMLs, corpusname); 
@@ -102,7 +103,7 @@
 		// mkdirs
 		HTMLc.mkdir();
 		HTMLcmulti.mkdir();
-		File[] files = HTMLs.listFiles();
+		File[] files = HTMLs.listFiles(IOUtils.FILTER_HIDDEN);
 		if (files != null && files.length > 1)
 			HTMLconepage.mkdir();
 		TXMc.mkdir();
@@ -110,16 +111,16 @@
 		
 		System.out.println(NLS.bind(TXMCoreMessages.reorganizingFilesOfP0, OUTDIR));
 		// move files
-		for (File f : HTMLmulti.listFiles())
+		for (File f : HTMLmulti.listFiles(IOUtils.FILTER_HIDDEN))
 			f.renameTo(new File(HTMLcmulti, f.getName()));
 		if (HTMLconepage.exists()) {
-			for (File f : HTMLs.listFiles())
+			for (File f : HTMLs.listFiles(IOUtils.FILTER_HIDDEN))
 				if (f.isFile())
 					f.renameTo(new File(HTMLconepage, f.getName()));
 		}
-		for (File f : DATAs.listFiles())
+		for (File f : DATAs.listFiles(IOUtils.FILTER_HIDDEN))
 			f.renameTo(new File(DATAc, f.getName()));
-		for (File f : TXMs.listFiles())
+		for (File f : TXMs.listFiles(IOUtils.FILTER_HIDDEN))
 			f.renameTo(new File(TXMc, f.getName()));
 
 		// remove unused dir
@@ -181,7 +182,7 @@
 		//process xml-txm files
 		//params.addEditionDefinition(corpusElem, "default", "groovy", "");
 		params.addEditionDefinition(corpusElem, "onepage", "groovy", ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		for (File txmFile : TXMc.listFiles()) {
+		for (File txmFile : TXMc.listFiles(IOUtils.FILTER_HIDDEN)) {
 			System.out.println(NLS.bind(TXMCoreMessages.processingTextColonP0, txmFile));
 			String textname = txmFile.getName();
 			textname = textname.substring(0, textname.lastIndexOf(".")); //$NON-NLS-1$
@@ -189,7 +190,7 @@
 			Element textElem = params.addText(corpusElem, textname, txmFile);
 			Element editionElem = params.addEdition(textElem, "default", HTMLc.getAbsolutePath(), "html"); //$NON-NLS-1$ //$NON-NLS-2$
 			
-			File[] htmlfiles = HTMLcmulti.listFiles();
+			File[] htmlfiles = HTMLcmulti.listFiles(IOUtils.FILTER_HIDDEN);
 			Arrays.sort(htmlfiles, new Comparator<File>() {
 				@Override
 				public int compare(File arg0, File arg1) {
@@ -208,7 +209,7 @@
 			// add default Edition
 			if (HTMLconepage.exists()) {
 				editionElem = params.addEdition(textElem, "onepage", HTMLc.getAbsolutePath(), "html"); //$NON-NLS-1$ //$NON-NLS-2$
-				htmlfiles = HTMLconepage.listFiles();
+				htmlfiles = HTMLconepage.listFiles(IOUtils.FILTER_HIDDEN);
 				pagecounter = 1;
 				for (File page : htmlfiles) {
 					if (page.getName().startsWith(textname)) {
Index: tmp/org.txm.core/src/java/org/txm/importer/EncodingConverter.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/importer/EncodingConverter.java	(revision 1369)
+++ tmp/org.txm.core/src/java/org/txm/importer/EncodingConverter.java	(revision 1370)
@@ -182,7 +182,7 @@
 
 		while (racine != null) {
 			if (racine.exists())
-				for (File f : racine.listFiles()) {
+				for (File f : racine.listFiles(IOUtils.FILTER_HIDDEN)) {
 					// System.out.println("scan file "+f);
 					if (f.isDirectory()) {
 						if (!f.getName().equals(".svn"))
Index: tmp/org.txm.core/src/java/org/txm/scripts/importer/WExtractWithMode.groovy
===================================================================
--- tmp/org.txm.core/src/java/org/txm/scripts/importer/WExtractWithMode.groovy	(revision 1369)
+++ tmp/org.txm.core/src/java/org/txm/scripts/importer/WExtractWithMode.groovy	(revision 1370)
@@ -38,6 +38,7 @@
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
+import org.txm.utils.io.IOUtils
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
@@ -361,12 +362,9 @@
 		}
 		println maxperfile;
 		
-		def files = directory.listFiles();
-		for(File infile : files)
-		{
-			
-			if(maxperfile.containsKey(infile.getName()))
-			{
+		def files = directory.listFiles(IOUtils.FILTER_HIDDEN);
+		for(File infile : files) {
+			if(maxperfile.containsKey(infile.getName())) {
 				File outfile = new File(outdir, infile.getName());
 				String modemax = maxperfile.get(infile.getName());
 				new WExtractWithMode().process(infile, outfile, modemax)
Index: tmp/org.txm.core/src/java/org/txm/scripts/importer/XMLText2TXTCSV.groovy
===================================================================
--- tmp/org.txm.core/src/java/org/txm/scripts/importer/XMLText2TXTCSV.groovy	(revision 1369)
+++ tmp/org.txm.core/src/java/org/txm/scripts/importer/XMLText2TXTCSV.groovy	(revision 1370)
@@ -1,6 +1,7 @@
 package org.txm.scripts.importer
 
 import org.txm.metadatas.Metadatas
+import org.txm.utils.io.IOUtils
 
 File dir = new File("/home/mdecorde/xml/voeux/split_xml")
 File outdir = new File("/home/mdecorde/xml/voeux/split_txtcsv")
@@ -10,10 +11,9 @@
 File metadatafile = Metadatas.findMetadataFile(outdir)
 String csvString = ""
 
-def files = dir.listFiles()
+def files = dir.listFiles(IOUtils.FILTER_HIDDEN)
 files.sort()
-for(File f : files)
-{
+for(File f : files) {
 	File outfile = new File(outdir, f.getName()+".txt");
 	String text = f.getText("UTF-8");
 	String texttag = text.find("<text id.*>")
Index: tmp/org.txm.core/src/java/org/txm/scripts/importer/ApplyXsl.groovy
===================================================================
--- tmp/org.txm.core/src/java/org/txm/scripts/importer/ApplyXsl.groovy	(revision 1369)
+++ tmp/org.txm.core/src/java/org/txm/scripts/importer/ApplyXsl.groovy	(revision 1370)
@@ -51,8 +51,10 @@
 import javax.xml.transform.Transformer
 import javax.xml.transform.TransformerFactory
 import javax.xml.transform.stream.StreamResult
-import javax.xml.transform.stream.StreamSource;
-
+import javax.xml.transform.stream.StreamSource;
+
+import org.txm.utils.io.IOUtils
+
 import net.sf.saxon.*;
 import net.sf.saxon.s9api.*;
 
@@ -220,7 +222,7 @@
 		assert(srcdirectory.canRead())
 		assert(srcdirectory.canExecute())
 		
-		List<File> files = srcdirectory.listFiles();
+		List<File> files = srcdirectory.listFiles(IOUtils.FILTER_HIDDEN);
 		
 		files = files.findAll{item-> item.getName().endsWith(".xml")}
 		
Index: tmp/org.txm.core/src/java/org/txm/scripts/importer/SAttributesListener.groovy
===================================================================
--- tmp/org.txm.core/src/java/org/txm/scripts/importer/SAttributesListener.groovy	(revision 1369)
+++ tmp/org.txm.core/src/java/org/txm/scripts/importer/SAttributesListener.groovy	(revision 1370)
@@ -5,6 +5,8 @@
 
 import javax.xml.stream.*;
 
+import org.txm.utils.io.IOUtils
+
 /**
  * Read an XML file and find out : XML elements, their attributes and recursivity level
  * names are lowercases
@@ -202,7 +204,7 @@
 	public static SAttributesListener scanFiles(File xmlDirectory, String wordTag) {
 		SAttributesListener listener = new SAttributesListener()
 		listener.W = wordTag
-		for (File xmlFile : xmlDirectory.listFiles()) {
+		for (File xmlFile : xmlDirectory.listFiles(IOUtils.FILTER_HIDDEN)) {
 			if (xmlFile.isFile() && !xmlFile.isHidden() && xmlFile.getName().toLowerCase().endsWith(".xml")) {
 				scanFile(xmlFile, listener); // results saved in 'listener' data
 //				println "LISTENER RESULT with ${xmlFile.getName()}: "+listener
Index: tmp/org.txm.core/src/java/org/txm/scripts/importer/TabulatedToXml.groovy
===================================================================
--- tmp/org.txm.core/src/java/org/txm/scripts/importer/TabulatedToXml.groovy	(revision 1369)
+++ tmp/org.txm.core/src/java/org/txm/scripts/importer/TabulatedToXml.groovy	(revision 1370)
@@ -37,6 +37,8 @@
 import javax.xml.stream.XMLOutputFactory;
 import javax.xml.stream.XMLStreamWriter;
 
+import org.txm.utils.io.IOUtils
+
 // TODO: Auto-generated Javadoc
 /**
  * Tool to convert Tabulated file to xml file. Such as CWB files or TreeTagger ouput
@@ -227,7 +229,7 @@
 		String encoding = "UTF-8";
 		
 		TabulatedToXml ttx = new TabulatedToXml(colnames, "debat", tag);
-		for(File tabulatedfile : srcdir.listFiles())
+		for(File tabulatedfile : srcdir.listFiles(IOUtils.FILTER_HIDDEN))
 		{
 			if(tabulatedfile.getName().endsWith(".txt"))
 			{
Index: tmp/org.txm.core/src/java/org/txm/scripts/importer/DisplayXmlTags.groovy
===================================================================
--- tmp/org.txm.core/src/java/org/txm/scripts/importer/DisplayXmlTags.groovy	(revision 1369)
+++ tmp/org.txm.core/src/java/org/txm/scripts/importer/DisplayXmlTags.groovy	(revision 1370)
@@ -31,6 +31,9 @@
 import java.util.ArrayList;
 import java.io.File;
 import javax.xml.stream.*;
+
+import org.txm.utils.io.IOUtils
+
 import java.net.URL;
 
 // TODO: Auto-generated Javadoc
@@ -58,7 +61,7 @@
 	 */
 	public DisplayXmlTags(File infile) {
 		if (infile.isDirectory()) {
-			for (File f : infile.listFiles()) {
+			for (File f : infile.listFiles(IOUtils.FILTER_HIDDEN)) {
 				processxmlFile(f);
 			}
 		} else
Index: tmp/org.txm.core/src/java/org/txm/scripts/importer/WExtract.groovy
===================================================================
--- tmp/org.txm.core/src/java/org/txm/scripts/importer/WExtract.groovy	(revision 1369)
+++ tmp/org.txm.core/src/java/org/txm/scripts/importer/WExtract.groovy	(revision 1370)
@@ -38,6 +38,7 @@
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
+import org.txm.utils.io.IOUtils
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
@@ -319,12 +320,9 @@
 		}
 		println maxperfile;
 		
-		def files = directory.listFiles();
-		for(File infile : files)
-		{
-			
-			if(maxperfile.containsKey(infile.getName()))
-			{
+		def files = directory.listFiles(IOUtils.FILTER_HIDDEN);
+		for (File infile : files) {
+			if (maxperfile.containsKey(infile.getName())) {
 				File outfile = new File(outdir, infile.getName());
 				int max= maxperfile.get(infile.getName());
 				new WExtract().process(infile, outfile, max)
Index: tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/JFCChartsEngine.java
===================================================================
--- tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/JFCChartsEngine.java	(revision 1369)
+++ tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/JFCChartsEngine.java	(revision 1370)
@@ -759,7 +759,7 @@
 
 			// FIXME: recursive addition of subdirectories of root font paths
 //			  static protected void traverseDir(File folder, DefaultFontMapper mapper) {
-//				    File[] files = folder.listFiles();
+//				    File[] files = folder.listFiles(IOUtils.FILTER_HIDDEN);
 //				    for (int i = 0; i < files.length; i++) {
 //				      if (files[i].isDirectory()) {
 //				        mapper.insertDirectory(files[i].getPath());
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorporaDirectory.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorporaDirectory.java	(revision 1369)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorporaDirectory.java	(revision 1370)
@@ -50,6 +50,7 @@
 import org.txm.rcp.utils.JobHandler;
 import org.txm.searchengine.core.SearchEngine;
 import org.txm.searchengine.core.SearchEnginesManager;
+import org.txm.utils.io.IOUtils;
 
 /**
  * Create projects from one binary corpus directory
@@ -176,10 +177,8 @@
 			job.releaseSemaphore();
 
 			monitor.subTask(TXMUIMessages.loadingTheCorpusInThePlatform);
-			for (File corpusDirectory : corporaDirectory.listFiles()) {
+			for (File corpusDirectory : corporaDirectory.listFiles(IOUtils.FILTER_HIDDEN)) {
 				
-				if (corpusDirectory.isHidden()) continue;
-				
 				Project project = Toolbox.workspace.getProject(corpusDirectory.getName().toUpperCase());
 				if (project != null) {
 					System.out.println("A corpus named "+corpusDirectory.getName().toUpperCase()+" is already loaded. Aborting the loading of "+corpusDirectory);
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/LangSection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/LangSection.java	(revision 1369)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/LangSection.java	(revision 1370)
@@ -19,6 +19,7 @@
 import org.txm.objects.Project;
 import org.txm.rcp.messages.TXMUIMessages;
 import org.txm.treetagger.core.preferences.TreeTaggerPreferences;
+import org.txm.utils.io.IOUtils;
 
 public class LangSection extends ImportEditorSection {
 
@@ -82,7 +83,7 @@
 		int langToSelectIndex = -1;
 		int added = 0;
 		String modelsDir = TreeTaggerPreferences.getInstance().getString(TreeTaggerPreferences.MODELS_PATH);
-		File files[] = new File(modelsDir).listFiles();
+		File files[] = new File(modelsDir).listFiles(IOUtils.FILTER_HIDDEN);
 		if (files != null && files.length > 0) {
 			for (File model : files) {
 				if (!model.getName().endsWith(".par")) continue;
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/ApplicationWorkbenchAdvisor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/ApplicationWorkbenchAdvisor.java	(revision 1369)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/ApplicationWorkbenchAdvisor.java	(revision 1370)
@@ -103,6 +103,7 @@
 import org.txm.utils.BundleUtils;
 import org.txm.utils.DeleteDir;
 import org.txm.utils.io.FileCopy;
+import org.txm.utils.io.IOUtils;
 import org.txm.utils.logger.Log;
 import org.txm.utils.zip.Zip;
 
@@ -743,7 +744,7 @@
 
 		corporaDir = new File(txmhomedir, "corpora"); //$NON-NLS-1$
 
-		File[] corporaDirFiles = corporaDir.listFiles();
+		File[] corporaDirFiles = corporaDir.listFiles(IOUtils.FILTER_HIDDEN);
 		if (corporaDir.exists() && corporaDirFiles != null && corporaDirFiles.length > 0) { // if the txmhomedir is not empty, try to restore its content
 			Display.getDefault().syncExec(new Runnable() {
 				@Override
@@ -769,7 +770,7 @@
 					DeleteDir.deleteDirectory(oldbackup); // ]8)
 				}
 
-				File[] corpDirs = corporaDir.listFiles();
+				File[] corpDirs = corporaDir.listFiles(IOUtils.FILTER_HIDDEN);
 				ArrayList<String> moved = new ArrayList<String>();
 				ArrayList<String> failed = new ArrayList<String>();
 
@@ -827,7 +828,7 @@
 //			//File corporaDir = new File(txmhomedir.getAbsolutePath(), "corpora"); //$NON-NLS-1$
 //			
 //
-//			File[] sampleCorpusFiles = sampleCorporaDirectory.listFiles(); //$NON-NLS-1$
+//			File[] sampleCorpusFiles = sampleCorporaDirectory.listFiles(IOUtils.FILTER_HIDDEN); //$NON-NLS-1$
 //
 //			if (sampleCorpusFiles != null) for (File zipFile : sampleCorpusFiles) {
 //				try {
@@ -876,7 +877,7 @@
 //			}
 		}
 		
-//		for (File projectDir : corporaDir.listFiles()) { // load sample corpus and previous corpus as well
+//		for (File projectDir : corporaDir.listFiles(IOUtils.FILTER_HIDDEN)) { // load sample corpus and previous corpus as well
 //			if (projectDir.isDirectory()) {
 //				Project project;
 //				try {
@@ -893,7 +894,7 @@
 //			System.out.print(NLS.bind(TXMUIMessages.ApplicationWorkbenchAdvisor_53, backup));
 //			monitor.setTaskName(NLS.bind(TXMUIMessages.ApplicationWorkbenchAdvisor_53, backup));
 //
-//			File[] corpusDirs = backup.listFiles();
+//			File[] corpusDirs = backup.listFiles(IOUtils.FILTER_HIDDEN);
 //
 //			if (corpusDirs != null) {
 //
@@ -905,7 +906,7 @@
 //						}
 //					}
 //				}
-//				corpusDirs = backup.listFiles();
+//				corpusDirs = backup.listFiles(IOUtils.FILTER_HIDDEN);
 //
 //				ArrayList<String> notMoved = new ArrayList<String>();
 //				ArrayList<File> broken = new ArrayList<File>();
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteGroovyScript.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteGroovyScript.java	(revision 1369)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteGroovyScript.java	(revision 1370)
@@ -331,7 +331,7 @@
 		 * System.out.println("SCRIPTROOTDIR "+script.getParent());
 		 * System.out.println("SCRIPT "+script); GroovyScriptEngine gse; try {
 		 * gse = new GroovyScriptEngine(roots); for(File f :
-		 * script.getParentFile().listFiles())
+		 * script.getParentFile().listFiles(IOUtils.FILTER_HIDDEN))
 		 * gse.loadScriptByName(f.getName()); Binding binding = new Binding();
 		 * 
 		 * System.out.println("start execution"); gse.run(script.getName(),
Index: tmp/org.txm.tigersearch.rcp/groovy/org/txm/scripts/importer/srcmf/SrcmfImporter.groovy
===================================================================
--- tmp/org.txm.tigersearch.rcp/groovy/org/txm/scripts/importer/srcmf/SrcmfImporter.groovy	(revision 1369)
+++ tmp/org.txm.tigersearch.rcp/groovy/org/txm/scripts/importer/srcmf/SrcmfImporter.groovy	(revision 1370)
@@ -20,7 +20,9 @@
 
 import java.util.logging.*;
 
+import org.txm.utils.io.IOUtils
 
+
 // Command line entry point
 def cli = new CliBuilder(
     usage:'SrcmfImport.groovy [options] tiger_master.xml xml_txm.xml header_file.xml'
@@ -51,7 +53,7 @@
     File tigerDir = new File(binDir, "tiger")
     tigerDir.mkdir()
     File masterpos = new File(tigerDir, "master_pos.xml")
-    File xmltxm = txmSrcDir.listFiles()[0]
+    File xmltxm = txmSrcDir.listFiles(IOUtils.FILTER_HIDDEN)[0]
     File logFile = new File(binDir, "tiger.log")
     def sdi = new SubcorpusDataInject(
         xmltxm, 
Index: tmp/org.txm.tigersearch.rcp/groovy/org/txm/scripts/importer/srcmf/srcmfLoader.groovy
===================================================================
--- tmp/org.txm.tigersearch.rcp/groovy/org/txm/scripts/importer/srcmf/srcmfLoader.groovy	(revision 1369)
+++ tmp/org.txm.tigersearch.rcp/groovy/org/txm/scripts/importer/srcmf/srcmfLoader.groovy	(revision 1370)
@@ -101,7 +101,7 @@
 txmDir.deleteDir();
 txmDir.mkdirs();
 // copy txm files
-List<File> srcfiles = txmSrcDir.listFiles();
+List<File> srcfiles = txmSrcDir.listFiles(IOUtils.FILTER_HIDDEN);
 for (File f : srcfiles) {// check XML format, and copy file into binDir
 	if (f.getName().equals("import.xml") || f.getName().matches("metadata\\.....?") || f.getName().endsWith(".properties"))
 		continue;
@@ -111,12 +111,12 @@
 		println "Won't process file "+f;
 	}
 }
-if (txmDir.listFiles() == null) {
+if (txmDir.listFiles(IOUtils.FILTER_HIDDEN) == null) {
 	println "No txm file to process"
 	return;
 }
 
-List<File> filelist = txmDir.listFiles();
+List<File> filelist = txmDir.listFiles(IOUtils.FILTER_HIDDEN);
 Collections.sort(filelist);
 
 if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
@@ -173,7 +173,7 @@
 File tigerDir = new File(binDir, "tiger");
 tigerDir.mkdir();
 File master = new File(tigerSrcDir, "master.xml");
-File txmSrcFile = txmSrcDir.listFiles()[0]; // only one text file 
+File txmSrcFile = txmSrcDir.listFiles(IOUtils.FILTER_HIDDEN)[0]; // only one text file 
 
 // Run SRCMF cmd line corpus import script 
 if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
Index: tmp/org.txm.tigersearch.rcp/groovy/org/txm/scripts/importer/tigersearch/TSImporter.groovy
===================================================================
--- tmp/org.txm.tigersearch.rcp/groovy/org/txm/scripts/importer/tigersearch/TSImporter.groovy	(revision 1369)
+++ tmp/org.txm.tigersearch.rcp/groovy/org/txm/scripts/importer/tigersearch/TSImporter.groovy	(revision 1370)
@@ -4,6 +4,7 @@
 import org.txm.importer.xtz.ImportModule;
 import org.txm.metadatas.Metadatas
 import org.txm.utils.io.FileCopy
+import org.txm.utils.io.IOUtils
 import org.txm.importer.xtz.*
 import org.txm.scripts.importer.xtz.*
 import org.txm.importer.ApplyXsl2;
@@ -109,7 +110,7 @@
 			return;
 		}
 
-		File[] files = tokenizedDir.listFiles();
+		File[] files = tokenizedDir.listFiles(IOUtils.FILTER_HIDDEN);
 		if (files == null || files.length == 0) {
 			println "Error while applying TS XSL file to $xmltxmSrcDir is empty"
 			isSuccessful = false;
@@ -120,6 +121,6 @@
 		if (!doInjectMetadataStep()) return;
 
 		File txmdDir = new File(module.getBinaryDirectory(),"txm");
-		isSuccessFul = txmdDir.listFiles().size() > 0
+		isSuccessFul = txmdDir.listFiles(IOUtils.FILTER_HIDDEN).size() > 0
 	}
 }
Index: tmp/org.txm.tigersearch.rcp/src/org/txm/test/DrawTSSVG.java
===================================================================
--- tmp/org.txm.tigersearch.rcp/src/org/txm/test/DrawTSSVG.java	(revision 1369)
+++ tmp/org.txm.tigersearch.rcp/src/org/txm/test/DrawTSSVG.java	(revision 1370)
@@ -62,7 +62,7 @@
 //			System.out.println( next.toHTML() + "<br>");
 
 			//	System.out.println( "make some room :)"
-			//	for(File f : new File("/home/mdecorde/Bureau/tigerexports/").listFiles())
+			//	for(File f : new File("/home/mdecorde/Bureau/tigerexports/").listFiles(IOUtils.FILTER_HIDDEN))
 			//		f.delete()
 			//
 
Index: tmp/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/ImportGlozzCorpus.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/ImportGlozzCorpus.java	(revision 1369)
+++ tmp/org.txm.analec.rcp/src/org/txm/annotation/urs/commands/ImportGlozzCorpus.java	(revision 1370)
@@ -182,7 +182,7 @@
 						}
 						Corpus analecCorpus = URSCorpora.getCorpus(corpus);
 						analecCorpus.clearAll(); // remove all : annotations, structure
-						File[] ecFiles = ecDir.listFiles();
+						File[] ecFiles = ecDir.listFiles(IOUtils.FILTER_HIDDEN);
 						Arrays.sort(ecFiles);
 						for (File ecFile : ecFiles) {
 							FichiersJava.concatener(ecFile, analecCorpus);
Index: tmp/org.txm.oriflamms.rcp/groovy/org/txm/macro/oriflamms/prepare/TEI2ProjectMacro.groovy
===================================================================
--- tmp/org.txm.oriflamms.rcp/groovy/org/txm/macro/oriflamms/prepare/TEI2ProjectMacro.groovy	(revision 1369)
+++ tmp/org.txm.oriflamms.rcp/groovy/org/txm/macro/oriflamms/prepare/TEI2ProjectMacro.groovy	(revision 1370)
@@ -185,10 +185,10 @@
 	return;
 }
 
-if (imagesDirectory.exists() && imagesDirectory.listFiles().size() > 0) {
+if (imagesDirectory.exists() && imagesDirectory.listFiles(IOUtils.FILTER_HIDDEN).size() > 0) {
 	println "Copying images files from $imagesDirectory to $imgDirectory..."
 	FileCopy.copyFiles(imagesDirectory, imgDirectory);
-	def files = imgDirectory.listFiles()
+	def files = imgDirectory.listFiles(IOUtils.FILTER_HIDDEN)
 	if (files != null) println ""+files.size()+" images copied."
 }
 
Index: tmp/org.txm.oriflamms.rcp/groovy/org/txm/macro/oriflamms/prepare/Project2XTZMacro.groovy
===================================================================
--- tmp/org.txm.oriflamms.rcp/groovy/org/txm/macro/oriflamms/prepare/Project2XTZMacro.groovy	(revision 1369)
+++ tmp/org.txm.oriflamms.rcp/groovy/org/txm/macro/oriflamms/prepare/Project2XTZMacro.groovy	(revision 1370)
@@ -7,6 +7,7 @@
 import org.txm.objects.BaseParameters;
 import org.txm.rcp.swt.widget.parameters.*
 import org.txm.*
+import org.txm.importer.ApplyXsl2
 import org.txm.utils.*
 import org.txm.utils.io.*
 import org.txm.scripts.importer.*
@@ -87,7 +88,7 @@
 File wFile = null
 File cFile = null
 
-def xmlFiles = textDirectory.listFiles()
+def xmlFiles = textDirectory.listFiles(IOUtils.FILTER_HIDDEN)
 if (xmlFiles == null) return;
 
 for (File xmlFile : xmlFiles) {
@@ -125,14 +126,14 @@
 	println "Error: fail to split $cFile"
 	return false
 }
-if (!ApplyXsl2.processImportSources(cFrontXSLFile, cDirectory.listFiles(), [:])) {
+if (!ApplyXsl2.processImportSources(cFrontXSLFile, cDirectory.listFiles(IOUtils.FILTER_HIDDEN), [:])) {
 	println "Error: fail to apply front XSL with $cDirectory files"
 	return false
 }
 // INJECT ontologies 
 
 println "Injecting ontologies..."
-for (File f : cDirectory.listFiles()) {
+for (File f : cDirectory.listFiles(IOUtils.FILTER_HIDDEN)) {
 	if (f.getName().startsWith(cDirectory.getName())) {
 		OntologiesProjection cp = new OntologiesProjection(f, projectDirectory);
 		File outputFile = new File(cDirectory, "temp.xml")
Index: tmp/org.txm.oriflamms.rcp/src/org/txm/oriflamms/functions/TEI2Project.java
===================================================================
--- tmp/org.txm.oriflamms.rcp/src/org/txm/oriflamms/functions/TEI2Project.java	(revision 1369)
+++ tmp/org.txm.oriflamms.rcp/src/org/txm/oriflamms/functions/TEI2Project.java	(revision 1370)
@@ -203,10 +203,10 @@
 				return false;
 			}
 
-			if (imagesDirectory.exists() && imagesDirectory.listFiles().length > 0) {
+			if (imagesDirectory.exists() && imagesDirectory.listFiles(IOUtils.FILTER_HIDDEN).length > 0) {
 				System.out.println("Copying images files from "+imagesDirectory+" to "+imgDirectory+"...");
 				FileCopy.copyFiles(imagesDirectory, imgDirectory);
-				File[] files = imgDirectory.listFiles();
+				File[] files = imgDirectory.listFiles(IOUtils.FILTER_HIDDEN);
 				if (files != null) System.out.println(""+files.length+" images copied.");
 			}
 
Index: tmp/org.txm.oriflamms.rcp/src/org/txm/oriflamms/functions/Project2XTZ.java
===================================================================
--- tmp/org.txm.oriflamms.rcp/src/org/txm/oriflamms/functions/Project2XTZ.java	(revision 1369)
+++ tmp/org.txm.oriflamms.rcp/src/org/txm/oriflamms/functions/Project2XTZ.java	(revision 1370)
@@ -15,6 +15,7 @@
 import org.txm.utils.BundleUtils;
 import org.txm.utils.DeleteDir;
 import org.txm.utils.io.FileCopy;
+import org.txm.utils.io.IOUtils;
 import org.txm.utils.xml.UpdateXSLParameters;
 import org.xml.sax.SAXException;
 
@@ -90,21 +91,21 @@
 		}
 
 		File wDirectory = null;
-				File cDirectory = null;
-				File wFile = null;
-				File cFile = null;
+		File cDirectory = null;
+		File wFile = null;
+		File cFile = null;
 
-				File[] xmlFiles = textDirectory.listFiles();
-				if (xmlFiles == null) return false;
+		File[] xmlFiles = textDirectory.listFiles(IOUtils.FILTER_HIDDEN);
+		if (xmlFiles == null) return false;
 
 		for (File xmlFile : xmlFiles) {
 			if (xmlFile.getName().endsWith("-w.xml")) {
 				String name = xmlFile.getName().substring(0, xmlFile.getName().indexOf(".xml"));
-						wDirectory = new File(txmDirectory, name);
+				wDirectory = new File(txmDirectory, name);
 				wFile = xmlFile;
 			} else if (xmlFile.getName().endsWith("-c.xml")) {
 				String name = xmlFile.getName().substring(0, xmlFile.getName().indexOf(".xml"));
-						cDirectory = new File(txmDirectory, name);
+				cDirectory = new File(txmDirectory, name);
 				cFile = xmlFile;
 			}
 		}
@@ -139,7 +140,7 @@
 		}
 		// INJECT ontologies 
 		System.out.println("Injecting ontologies...");
-		for (File f : cDirectory.listFiles()) {
+		for (File f : cDirectory.listFiles(IOUtils.FILTER_HIDDEN)) {
 			if (f.getName().startsWith(cDirectory.getName())) {
 				OntologiesProjection cp = new OntologiesProjection(f, projectDirectory);
 				File outputFile = new File(cDirectory, "temp.xml");
@@ -218,8 +219,8 @@
 		HashMap<String, String> parameters = new HashMap<String, String>();
 		parameters.put("image-directory", projectImgDirectory.getAbsolutePath());
 		parameters.put("word-element", "w");
-				System.out.println("update "+newWEditionXSLFile3+" with "+parameters);
-				UpdateXSLParameters p = new UpdateXSLParameters(newWEditionXSLFile3);
+		System.out.println("update "+newWEditionXSLFile3+" with "+parameters);
+		UpdateXSLParameters p = new UpdateXSLParameters(newWEditionXSLFile3);
 		if (!p.process(parameters)) {
 			System.out.println("Fail to patch "+newWEditionXSLFile3);
 			return false;
@@ -227,8 +228,8 @@
 		parameters = new HashMap<String, String>();
 		parameters.put("image-directory", projectImgDirectory.getAbsolutePath());
 		parameters.put("word-element", "c");
-				System.out.println("update "+newCEditionXSLFile3+" with "+parameters);
-				UpdateXSLParameters p2 = new UpdateXSLParameters(newCEditionXSLFile3);
+		System.out.println("update "+newCEditionXSLFile3+" with "+parameters);
+		UpdateXSLParameters p2 = new UpdateXSLParameters(newCEditionXSLFile3);
 		if (!p2.process(parameters)) {
 			System.out.println("Fail to patch "+newCEditionXSLFile3);
 			return false;
@@ -270,8 +271,8 @@
 		wParams.getCorpusElement().setAttribute("font", "Junicode");
 		wParams.getEditionsElement(wParams.getCorpusElement()).setAttribute("default", "default,facsimile");
 		wParams.getCorpusElement().setAttribute("name", AsciiUtils.buildId(wDirectory.getName()).toUpperCase());
-		
 
+
 		BaseOldParameters.createEmptyParams(cImportXMLFile, AsciiUtils.buildId(cDirectory.getName()).toUpperCase());
 		BaseOldParameters cParams = new BaseOldParameters(cImportXMLFile);
 		cParams.load();
@@ -284,7 +285,7 @@
 		cParams.getCorpusElement().setAttribute("font", "Junicode");
 		cParams.getEditionsElement(cParams.getCorpusElement()).setAttribute("default", "default,facsimile");
 		cParams.getCorpusElement().setAttribute("name", AsciiUtils.buildId(cDirectory.getName()).toUpperCase());
-		
+
 		return cParams.save() && wParams.save();
 	}
 }
\ No newline at end of file
Index: tmp/org.txm.utils/src/org/txm/utils/io/IOUtils.java
===================================================================
--- tmp/org.txm.utils/src/org/txm/utils/io/IOUtils.java	(revision 1369)
+++ tmp/org.txm.utils/src/org/txm/utils/io/IOUtils.java	(revision 1370)
@@ -44,18 +44,19 @@
 	/**
 	 * select only files not hidden
 	 */
-	public static final FileFilter filter = new FileFilter() {
+	public static final FileFilter FILTER_HIDDEN = new FileFilter() {
 		@Override
 		public boolean accept(File file) {
 			return !file.isHidden();
 		}
 	};
+	
 	/**
 	 * 
 	 * @return a list containing the files not hidden
 	 */
 	public List<File> listFiles(File dir) {
-		File[] files = dir.listFiles(filter);
+		File[] files = dir.listFiles(FILTER_HIDDEN);
 		if (files == null) return new ArrayList<File>();
 		
 		return Arrays.asList(files);
Index: tmp/org.txm.utils/src/org/txm/utils/LangDetector.java
===================================================================
--- tmp/org.txm.utils/src/org/txm/utils/LangDetector.java	(revision 1369)
+++ tmp/org.txm.utils/src/org/txm/utils/LangDetector.java	(revision 1370)
@@ -58,7 +58,7 @@
 	{
 		//println "process $dir"
 		if(dir.isDirectory()) {
-			for (File file : dir.listFiles())
+			for (File file : dir.listFiles(IOUtils.FILTER_HIDDEN))
 				if (file.isFile())
 					processFile(file);
 		} else {
@@ -104,7 +104,7 @@
 
 	public static void configFromModels(File dir)
 	{
-		File[] files = dir.listFiles();
+		File[] files = dir.listFiles(IOUtils.FILTER_HIDDEN);
 		Arrays.sort(files);
 		for(File f : files)
 			if(f.getName().contains(".lm") && !f.getName().contains("-"))
Index: tmp/org.txm.utils/src/org/txm/utils/zip/Zip.java
===================================================================
--- tmp/org.txm.utils/src/org/txm/utils/zip/Zip.java	(revision 1369)
+++ tmp/org.txm.utils/src/org/txm/utils/zip/Zip.java	(revision 1370)
@@ -31,7 +31,6 @@
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -41,14 +40,12 @@
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.HashSet;
-import java.util.List;
 import java.util.zip.Deflater;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 import java.util.zip.ZipInputStream;
 import java.util.zip.ZipOutputStream;
 
-import org.apache.commons.lang.StringUtils;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.txm.utils.logger.Log;
 
@@ -224,8 +221,7 @@
 			}
 		} else {
 			// Ecriture du fichier dans le zip
-			final InputStream in = new BufferedInputStream(
-					new FileInputStream(file));
+			final InputStream in = new BufferedInputStream(new FileInputStream(file));
 
 			try {
 				if (monitor != null) monitor.beginTask("Compressing "+file+" file ("+file.length()+" bytes).", (int)file.length());
@@ -243,57 +239,57 @@
 	}
 
 	/**
-	 * Decompress.
+	 * Decompress a ZIP file in the ZIP file parent directory
 	 *
-	 * @param file the file
+	 * @param zipfile the ZIP file
 	 * @throws IOException Signals that an I/O exception has occurred.
 	 */
-	public static void decompress(final File file)
+	public static void decompress(final File zipfile)
 			throws IOException {
-		decompress(file, file.getCanonicalFile().getParentFile(), false, null);
+		decompress(zipfile, zipfile.getCanonicalFile().getParentFile(), false, null);
 	}
 
 	/**
 	 * Decompress.
 	 *
-	 * @param file the file
+	 * @param zipFile the file
 	 * @param deleteZipAfter the delete zip after
 	 * @throws IOException Signals that an I/O exception has occurred.
 	 */
-	public static void decompress(final File file, final boolean deleteZipAfter)
+	public static void decompress(final File zipFile, final boolean deleteZipAfter)
 			throws IOException {
-		decompress(file, file.getCanonicalFile().getParentFile(), deleteZipAfter, null);
+		decompress(zipFile, zipFile.getCanonicalFile().getParentFile(), deleteZipAfter, null);
 	}
 
 	// Décompresse un fichier zip à l'adresse indiquée par le dossier
 	/**
 	 * Decompress.
 	 *
-	 * @param file the file
+	 * @param zipFile the file
 	 * @param folder the folder
 	 * @param deleteZipAfter the delete zip after
 	 * @throws IOException Signals that an I/O exception has occurred.
 	 */
-	public static void decompress(final File file, final File folder,
+	public static void decompress(final File zipFile, final File folder,
 			final boolean deleteZipAfter) throws IOException {
-		decompress(file, folder, deleteZipAfter, null);
+		decompress(zipFile, folder, deleteZipAfter, null);
 	}
 
 	// Décompresse un fichier zip à l'adresse indiquée par le dossier
 	/**
 	 * Decompress.
 	 *
-	 * @param file the file
+	 * @param zipFile the file
 	 * @param folder the folder
 	 * @param deleteZipAfter the delete zip after
 	 * @param monitor change progress state
 	 * 
 	 * @throws IOException Signals that an I/O exception has occurred.
 	 */
-	public static void decompress(final File file, final File folder, final boolean deleteZipAfter, IProgressMonitor monitor)
+	public static void decompress(final File zipFile, final File folder, final boolean deleteZipAfter, IProgressMonitor monitor)
 			throws IOException {
 		ZipInputStream zis = new ZipInputStream(new BufferedInputStream(
-				new FileInputStream(file.getCanonicalFile())));
+				new FileInputStream(zipFile.getCanonicalFile())));
 		ZipEntry ze;
 		int nEntries = 0;
 		//System.out.println("count entries...");
@@ -307,9 +303,9 @@
 		//System.out.println("count entries result: "+nEntries);
 
 		zis = new ZipInputStream(new BufferedInputStream(
-				new FileInputStream(file.getCanonicalFile())));
+				new FileInputStream(zipFile.getCanonicalFile())));
 		//System.out.println("zis: "+zis);
-		if (monitor != null) { monitor.beginTask("Unzipping "+file, nEntries);}
+		if (monitor != null) { monitor.beginTask("Unzipping "+zipFile, nEntries);}
 
 		try {
 			// Parcours tous les fichiers
@@ -351,7 +347,7 @@
 		}
 
 		if (deleteZipAfter)
-			file.delete();
+			zipFile.delete();
 	}
 
 	/**
@@ -368,55 +364,55 @@
 	/**
 	 * Decompress.
 	 *
-	 * @param fileName the file name
+	 * @param zipFileName the file name
 	 * @param deleteZipAfter the delete zip after
 	 * @throws IOException Signals that an I/O exception has occurred.
 	 */
-	public static void decompress(final String fileName,
+	public static void decompress(final String zipFileName,
 			final boolean deleteZipAfter)
 					throws IOException {
-		decompress(new File(fileName), deleteZipAfter);
+		decompress(new File(zipFileName), deleteZipAfter);
 	}
 
 
 	/**
 	 * Decompress.
 	 *
-	 * @param fileName the file name
+	 * @param zipFileName the file name
 	 * @param folderName the folder name
 	 * @throws IOException Signals that an I/O exception has occurred.
 	 */
-	public static void decompress(final String fileName, final String folderName)
+	public static void decompress(final String zipFileName, final String folderName)
 			throws IOException {
-		decompress(new File(fileName), new File(folderName), false);
+		decompress(new File(zipFileName), new File(folderName), false);
 	}
 
 	/**
 	 * Decompress.
 	 *
-	 * @param fileName the file name
+	 * @param zipFileName the file name
 	 * @param folderName the folder name
 	 * @param deleteZipAfter the delete zip after
 	 * @throws IOException Signals that an I/O exception has occurred.
 	 */
-	public static void decompress(final String fileName, final String folderName,
+	public static void decompress(final String zipFileName, final String folderName,
 			final boolean deleteZipAfter)
 					throws IOException {
-		decompress(new File(fileName), new File(folderName), deleteZipAfter, null);
+		decompress(new File(zipFileName), new File(folderName), deleteZipAfter, null);
 	}
 
 	/**
 	 * Decompress.
 	 *
-	 * @param fileName the file name
+	 * @param zipFileName the file name
 	 * @param folderName the folder name
 	 * @param deleteZipAfter the delete zip after
 	 * @throws IOException Signals that an I/O exception has occurred.
 	 */
-	public static void decompress(final String fileName, final String folderName,
+	public static void decompress(final String zipFileName, final String folderName,
 			final boolean deleteZipAfter, IProgressMonitor monitor)
 					throws IOException {
-		decompress(new File(fileName), new File(folderName), deleteZipAfter, monitor);
+		decompress(new File(zipFileName), new File(folderName), deleteZipAfter, monitor);
 	}
 
 	/**
@@ -448,10 +444,8 @@
 		try {
 			long oldFileTime = outputFile.lastModified();			
 
-			ZipInputStream zis = new ZipInputStream(new BufferedInputStream(
-					new FileInputStream(zipFile.getCanonicalFile())));
+			ZipInputStream zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(zipFile.getCanonicalFile())));
 			ZipEntry ze;
-
 			
 			// Parcourt tous les fichiers
 			while (null != (ze = zis.getNextEntry())) {
Index: tmp/org.txm.utils/src/org/txm/utils/CharsetDetector.java
===================================================================
--- tmp/org.txm.utils/src/org/txm/utils/CharsetDetector.java	(revision 1369)
+++ tmp/org.txm.utils/src/org/txm/utils/CharsetDetector.java	(revision 1370)
@@ -6,6 +6,7 @@
 
 import org.mozilla.universalchardet.CharsetListener;
 import org.mozilla.universalchardet.UniversalDetector;
+import org.txm.utils.io.IOUtils;
 
 public class CharsetDetector {
 	public static int MINIMALSIZE=2000;
@@ -27,7 +28,7 @@
 	
 	private void processDirectory(File dir)
 	{
-		for (File file : dir.listFiles()) {
+		for (File file : dir.listFiles(IOUtils.FILTER_HIDDEN)) {
 			if (file.isFile()) {
 				try {
 					processFile(file);
