Index: DefaultFilesystemServerExplorer.java
===================================================================
--- DefaultFilesystemServerExplorer.java	(revision 44296)
+++ DefaultFilesystemServerExplorer.java	(revision 44297)
@@ -53,11 +53,11 @@
 import org.gvsig.fmap.dal.spi.AbstractDataServerExplorer;
 import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
 import org.gvsig.fmap.dal.spi.DataServerExplorerProviderServices;
-import org.gvsig.fmap.dal.spi.FileMultiResource;
+import org.gvsig.fmap.dal.spi.ZipResourcesStorage;
 import org.gvsig.tools.exception.BaseException;
 import org.gvsig.tools.extensionpoint.ExtensionPoint.Extension;
-import org.gvsig.tools.util.ResourcesStorage;
-import org.gvsig.tools.util.SimpleFileResource;
+import org.gvsig.tools.resourcesstorage.ResourcesStorage;
+import org.gvsig.tools.resourcesstorage.FilesResourcesStorage;
 
 @SuppressWarnings("UseSpecificCatch")
 public class DefaultFilesystemServerExplorer extends AbstractDataServerExplorer
@@ -494,71 +494,59 @@
     @Deprecated
     @Override
     public File getResourcePath(DataStore dataStore, String resourceName) throws DataException {
-        SimpleFileResource resource = (SimpleFileResource) this.getResource(dataStore, resourceName);
-        if( resource==null ) {
+        try {
+            ResourcesStorage theResourceStorage = this.getResourcesStorage(dataStore);
+            if( theResourceStorage==null ) {
+                return null;
+            }
+            FilesResourcesStorage.FileResource res = (FilesResourcesStorage.FileResource) theResourceStorage.getResource(resourceName);
+            if( res==null ) {
+                return null;
+            }
+            return res.getFile();
+        } catch(Exception ex) {
             return null;
         }
-        return resource.getFile();
     }
 
     @Override
-    public org.gvsig.tools.util.ResourcesStorage.Resource getResource(DataStore dataStore, String resourceName) throws DataException {
-        FilesystemServerExplorerProvider provider = this.getProvider(dataStore.getProviderName());
-        if (provider == null) {
-            return null;
-        }
-        String rootPathName = provider.getResourceRootPathName(dataStore);
-        if (rootPathName == null) {
-            return null;
-        }
-        if( !dataStore.getChildren().isEmpty() ) {
-            FileMultiResource res = new FileMultiResource(
-                    new File(rootPathName),
-                    dataStore.getName(), 
-                    resourceName
-            );
-            return res;
-        }
-        File f = new File(FilenameUtils.getFullPathNoEndSeparator(rootPathName),resourceName);
-        if( f.exists() ) {
-            return new SimpleFileResource(f);
-        }
-        return new SimpleFileResource(new File(rootPathName + "." + resourceName));
-    }
-
-    @Override
-    public List<ResourcesStorage.Resource> getResources(DataStore dataStore, String resourceName) throws DataException {
-        FilesystemServerExplorerProvider provider = this.getProvider(dataStore.getProviderName());
-        if (provider == null) {
-            return null;
-        }
-        String rootPathName = provider.getResourceRootPathName(dataStore);
-        if (rootPathName == null) {
-            return null;
-        }
-        List<ResourcesStorage.Resource>ress = new ArrayList<>();
-        int n = 0;
-        while(true) {
-            String multiresourceName;
-            if( n==0 ) {
-                multiresourceName = resourceName;
-            } else {
-                multiresourceName = String.valueOf(n)+"."+resourceName;
+    public ResourcesStorage getResourcesStorage(DataStore dataStore) {
+        if( this.resourcesStorage==null ) {
+            FilesystemServerExplorerProvider provider;
+            try {
+                provider = this.getProvider(dataStore.getProviderName());
+            } catch (Exception ex) {
+                return null;
             }
-            File f = new File(rootPathName + "." + multiresourceName);
-            if( !f.exists() ) {
-                break;
+            if (provider == null) {
+                return null;
             }
-            ress.add(new SimpleFileResource(f));
-            n++;
+            String pathName = provider.getResourceRootPathName(dataStore);
+            if (pathName == null) {
+                return null;
+            }
+            pathName = FilenameUtils.removeExtension(pathName);
+            if( dataStore.getChildren().isEmpty() ) {
+                if( ZipResourcesStorage.existsStorage(pathName) ) {
+                    this.resourcesStorage = new ZipResourcesStorage(
+                            pathName,
+                            dataStore.getName()
+                    );
+                } else {
+                    this.resourcesStorage = new FilesResourcesStorage(
+                            pathName
+                    );
+                }
+            } else {
+                this.resourcesStorage = new ZipResourcesStorage(
+                        pathName,
+                        dataStore.getName()
+                );
+            }
         }
-        if( ress.isEmpty() ) {
-            return null;
-        }
-        return ress;
+        return this.resourcesStorage;
     }
     
-    
     @Override
     public DataStoreParameters get(String name) throws DataException {
         File theFile = new File(this.current,name);
