Package org.apache.commons.vfs2
Interface FileSystemManager
-
- All Known Implementing Classes:
DefaultFileSystemManager,StandardFileSystemManager
public interface FileSystemManagerA FileSystemManager manages a set of file systems. This interface is used to locate aFileObjectby name from one of those file systems.To locate a
FileObject, use one of theresolveFile()methods.File Naming
A file system manager can recognise several types of file names:- Absolute URI. These must start with a scheme, such as
file:orftp:, followed by a scheme dependent file name. Some examples:file:/c:/somefileorftp://somewhere.org/somefile. - Absolute local file name. For example,
/home/someuser/a-fileorc:\dir\somefile.html. Elements in the name can be separated using any of the following characters:/,\, or the native file separator character. For example, the following file names are the same:c:\somedir\somefile.xmlandc:/somedir/somefile.xml. - Relative path. For example:
../somefileorsomedir/file.txt. The file system manager resolves relative paths against its base file. Elements in the relative path can be separated using/,\, or file system specific separator characters. Relative paths may also contain..and.elements. SeeFileObject.resolveFile(java.lang.String)for more details.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidaddOperationProvider(java.lang.String[] schemes, FileOperationProvider operationProvider)voidaddOperationProvider(java.lang.String scheme, FileOperationProvider operationProvider)Adds the specified FileOperationProvider for the specified scheme.booleancanCreateFileSystem(FileObject file)Determines if a layered file system can be created for a given file.voidcloseFileSystem(FileSystem filesystem)Closes the given filesystem.FileObjectcreateFileSystem(java.lang.String provider, FileObject file)Creates a layered file system.FileObjectcreateFileSystem(FileObject file)Creates a layered file system.FileObjectcreateVirtualFileSystem(java.lang.String rootUri)Creates an empty virtual file system.FileObjectcreateVirtualFileSystem(FileObject rootFile)Creates a virtual file system.FileObjectgetBaseFile()Returns the base file used to resolve relative paths.CacheStrategygetCacheStrategy()Get the cache strategy used.FileContentInfoFactorygetFileContentInfoFactory()The class to use to determine the content-type (mime-type).java.lang.Class<?>getFileObjectDecorator()Get the file object decorator used.java.lang.reflect.Constructor<?>getFileObjectDecoratorConst()The constructor associated to the fileObjectDecorator.FilesCachegetFilesCache()Get the cache used to cache fileobjects.FileSystemConfigBuildergetFileSystemConfigBuilder(java.lang.String scheme)Get the configuration builder for the given scheme.FileOperationProvider[]getOperationProviders(java.lang.String scheme)Get Providers for file operations.java.util.Collection<Capability>getProviderCapabilities(java.lang.String scheme)Get the capabilities for a given scheme.java.lang.String[]getSchemes()Get the schemes currently available.java.net.URLStreamHandlerFactorygetURLStreamHandlerFactory()Returns a streamhandler factory to enable URL lookup using this FileSystemManager.booleanhasProvider(java.lang.String scheme)Returns true if this manager has a provider for a particular scheme.FileObjectresolveFile(java.io.File baseFile, java.lang.String name)Locates a file by name.FileObjectresolveFile(java.lang.String name)Locates a file by name.FileObjectresolveFile(java.lang.String name, FileSystemOptions fileSystemOptions)Locates a file by name.FileObjectresolveFile(java.net.URI uri)Resolves a URI into aFileObject.FileObjectresolveFile(java.net.URL url)Resolves a URL into aFileObject.FileObjectresolveFile(FileObject baseFile, java.lang.String name)Locates a file by name.FileNameresolveName(FileName root, java.lang.String name)Resolves a name, relative to this file name.FileNameresolveName(FileName root, java.lang.String name, NameScope scope)Resolves a name, relative to the "root" file name.FileNameresolveURI(java.lang.String uri)Resolve the uri to a filename.voidsetLogger(org.apache.commons.logging.Log log)Sets the logger to use.FileObjecttoFileObject(java.io.File file)Converts a local file into aFileObject.
-
-
-
Method Detail
-
getBaseFile
FileObject getBaseFile() throws FileSystemException
Returns the base file used to resolve relative paths.- Returns:
- The base FileObject.
- Throws:
FileSystemException- if an error occurs.
-
resolveFile
FileObject resolveFile(java.lang.String name) throws FileSystemException
Locates a file by name. Equivalent to callingresolveFile(getBaseFile(), name).- Parameters:
name- The name of the file.- Returns:
- The file. Never returns null.
- Throws:
FileSystemException- On error parsing the file name.
-
resolveFile
FileObject resolveFile(java.lang.String name, FileSystemOptions fileSystemOptions) throws FileSystemException
Locates a file by name. Equivalent to callingresolveFile(getBaseFile(), name).- Parameters:
name- The name of the file.fileSystemOptions- The FileSystemOptions used for FileSystem creation. All files that are later resolved relative to the returnedFileObjectshare the options.- Returns:
- The file. Never returns null.
- Throws:
FileSystemException- On error parsing the file name.
-
resolveFile
FileObject resolveFile(FileObject baseFile, java.lang.String name) throws FileSystemException
Locates a file by name. The name is resolved as described above. That is, the name can be either an absolute URI, an absolute file name, or a relative path to be resolved againstbaseFile.Note that the file does not have to exist when this method is called.
- Parameters:
baseFile- The base file to use to resolve relative paths. May be null if the name is an absolute file name.name- The name of the file.- Returns:
- The file. Never returns null.
- Throws:
FileSystemException- On error parsing the file name.
-
resolveFile
FileObject resolveFile(java.io.File baseFile, java.lang.String name) throws FileSystemException
Locates a file by name. SeeresolveFile(FileObject, String)for details.- Parameters:
baseFile- The base file to use to resolve relative paths. Must not benull, not even if the name is absolute.name- The name of the file.- Returns:
- The file. Never returns null.
- Throws:
FileSystemException- On error parsing the file name.
-
resolveName
FileName resolveName(FileName root, java.lang.String name) throws FileSystemException
Resolves a name, relative to this file name. Equivalent to callingresolveName( path, NameScope.FILE_SYSTEM ).- Parameters:
root- the base filenamename- The name to resolve.- Returns:
- A
FileNameobject representing the resolved file name. - Throws:
FileSystemException- If the name is invalid.
-
resolveName
FileName resolveName(FileName root, java.lang.String name, NameScope scope) throws FileSystemException
Resolves a name, relative to the "root" file name. Refer toNameScopefor a description of how names are resolved.- Parameters:
root- the base filenamename- The name to resolve.scope- TheNameScopeto use when resolving the name.- Returns:
- A
FileNameobject representing the resolved file name. - Throws:
FileSystemException- If the name is invalid.
-
toFileObject
FileObject toFileObject(java.io.File file) throws FileSystemException
Converts a local file into aFileObject.- Parameters:
file- The file to convert.- Returns:
- The
FileObjectthat represents the local file. Never returns null. - Throws:
FileSystemException- On error converting the file.
-
createFileSystem
FileObject createFileSystem(java.lang.String provider, FileObject file) throws FileSystemException
Creates a layered file system. A layered file system is a file system that is created from the contents of a file, such as a zip or tar file.- Parameters:
provider- The name of the file system provider to use. This name is the same as the scheme used in URI to identify the provider.file- The file to use to create the file system.- Returns:
- The root file of the new file system.
- Throws:
FileSystemException- On error creating the file system.
-
closeFileSystem
void closeFileSystem(FileSystem filesystem)
Closes the given filesystem.If you use VFS as singleton it is VERY dangerous to call this method.
- Parameters:
filesystem- The FileSystem to close.
-
createFileSystem
FileObject createFileSystem(FileObject file) throws FileSystemException
Creates a layered file system. A layered file system is a file system that is created from the contents of a file, such as a zip or tar file.- Parameters:
file- The file to use to create the file system.- Returns:
- The root file of the new file system.
- Throws:
FileSystemException- On error creating the file system.
-
createVirtualFileSystem
FileObject createVirtualFileSystem(java.lang.String rootUri) throws FileSystemException
Creates an empty virtual file system. Can be populated by adding junctions to it.- Parameters:
rootUri- The root URI to use for the new file system. Can be null.- Returns:
- The root file of the new file system.
- Throws:
FileSystemException- if an error occurs creating the VirtualFileSystem.
-
createVirtualFileSystem
FileObject createVirtualFileSystem(FileObject rootFile) throws FileSystemException
Creates a virtual file system. The file system will contain a junction at the fs root to the supplied root file.- Parameters:
rootFile- The root file to backs the file system.- Returns:
- The root of the new file system.
- Throws:
FileSystemException- if an error occurs creating the VirtualFileSystem.
-
getURLStreamHandlerFactory
java.net.URLStreamHandlerFactory getURLStreamHandlerFactory()
Returns a streamhandler factory to enable URL lookup using this FileSystemManager.- Returns:
- the URLStreamHandlerFactory.
-
canCreateFileSystem
boolean canCreateFileSystem(FileObject file) throws FileSystemException
Determines if a layered file system can be created for a given file.- Parameters:
file- The file to check for.- Returns:
- true if the FileSystem can be created.
- Throws:
FileSystemException- if an error occurs.
-
getFilesCache
FilesCache getFilesCache()
Get the cache used to cache fileobjects.- Returns:
- The FilesCache.
-
getCacheStrategy
CacheStrategy getCacheStrategy()
Get the cache strategy used.- Returns:
- the CacheStrategy.
-
getFileObjectDecorator
java.lang.Class<?> getFileObjectDecorator()
Get the file object decorator used.- Returns:
- the file object decorator Class.
-
getFileObjectDecoratorConst
java.lang.reflect.Constructor<?> getFileObjectDecoratorConst()
The constructor associated to the fileObjectDecorator. We cache it here for performance reasons.- Returns:
- the Constructor associated with the FileObjectDecorator.
-
getFileContentInfoFactory
FileContentInfoFactory getFileContentInfoFactory()
The class to use to determine the content-type (mime-type).- Returns:
- the FileContentInfoFactory.
-
hasProvider
boolean hasProvider(java.lang.String scheme)
Returns true if this manager has a provider for a particular scheme.- Parameters:
scheme- The scheme for which a provider should be checked.- Returns:
- true if a provider for the scheme is available.
-
getSchemes
java.lang.String[] getSchemes()
Get the schemes currently available.- Returns:
- An array of available scheme names that are supported.
-
getProviderCapabilities
java.util.Collection<Capability> getProviderCapabilities(java.lang.String scheme) throws FileSystemException
Get the capabilities for a given scheme.- Parameters:
scheme- The scheme to use to locate the provider's capabilities.- Returns:
- A Collection of the various capabilities.
- Throws:
FileSystemException- if the given scheme is not konwn.
-
setLogger
void setLogger(org.apache.commons.logging.Log log)
Sets the logger to use.- Parameters:
log- The logger to use.
-
getFileSystemConfigBuilder
FileSystemConfigBuilder getFileSystemConfigBuilder(java.lang.String scheme) throws FileSystemException
Get the configuration builder for the given scheme.- Parameters:
scheme- The schem to use to obtain the FileSystemConfigBuidler.- Returns:
- A FileSystemConfigBuilder appropriate for the given scheme.
- Throws:
FileSystemException- if the given scheme is not konwn.
-
resolveURI
FileName resolveURI(java.lang.String uri) throws FileSystemException
Resolve the uri to a filename.- Parameters:
uri- The uri to resolve.- Returns:
- A FileName that matches the uri.
- Throws:
FileSystemException- if this is not possible.
-
addOperationProvider
void addOperationProvider(java.lang.String scheme, FileOperationProvider operationProvider) throws FileSystemExceptionAdds the specified FileOperationProvider for the specified scheme.Several FileOperationProvider's might be registered for the same scheme. For example, for
"file"scheme we can registerSvnWsOperationProviderandCvsOperationProvider.- Parameters:
scheme- The scheme assoicated with this provider.operationProvider- The FileOperationProvider to add.- Throws:
FileSystemException- if an error occurs.
-
addOperationProvider
void addOperationProvider(java.lang.String[] schemes, FileOperationProvider operationProvider) throws FileSystemException- Parameters:
schemes- The schemes that will be associated with the provider.operationProvider- The FileOperationProvider to add.- Throws:
FileSystemException- if an error occurs.- See Also:
addOperationProvider(String, org.apache.commons.vfs2.operations.FileOperationProvider)
-
getOperationProviders
FileOperationProvider[] getOperationProviders(java.lang.String scheme) throws FileSystemException
Get Providers for file operations.- Parameters:
scheme- the scheme for wich we want to get the list af registered providers.- Returns:
- the registered FileOperationProviders for the specified scheme. If there were no providers registered for the scheme, it returns null.
- Throws:
FileSystemException- if an error occurs.
-
resolveFile
FileObject resolveFile(java.net.URI uri) throws FileSystemException
Resolves a URI into aFileObject.- Parameters:
uri- The URI to convert.- Returns:
- The
FileObjectthat represents the URI. Never returns null. - Throws:
FileSystemException- On error converting the file.- Since:
- 2.1
-
resolveFile
FileObject resolveFile(java.net.URL url) throws FileSystemException
Resolves a URL into aFileObject.- Parameters:
url- The URL to convert.- Returns:
- The
FileObjectthat represents the URL. Never returns null. - Throws:
FileSystemException- On error converting the file.- Since:
- 2.1
-
-