Exemples d'opérations de manipulation de fichier avec VFS

Les exemples de codes sources donnés ci-dessous correpondent à des méthodes réalisant des opérations simples de manipulation de fichier : copie, suppression, création.

Notons que toutes ces méthodes peuvent être utilisées indépendamment de la localisation du fichier (Fichier local, FTP, zip....). Il suffit pour cela de spécifier les URI des fichiers dans les paramètres de méthodes.

Copie de fichiers (récursive):

private void cp( final String[] cmd ) throws Exception
{
if ( cmd.length < 3 ) {
throw new Exception( "USAGE: cp <src> <dest>" );
}

FileSystemManager mgr = VFS.getManager();


final FileObject src = mgr.resolveFile( cwd, cmd[ 1 ] );
FileObject dest = mgr.resolveFile( cwd, cmd[ 2 ] );
if ( dest.exists() && dest.getType() == FileType.FOLDER ) {
dest = dest.resolveFile( src.getName().getBaseName() );
}
dest.copyFrom( src, Selectors.SELECT_ALL );
}

Suppression de fichiers/repertoires (non-récursive)

private void rm( final String[] cmd ) throws Exception
{
if ( cmd.length < 2 ) {
throw new Exception( "USAGE: rm <path>" );
}

FileSystemManager mgr = VFS.getManager();

final FileObject file = mgr.resolveFile( cwd, cmd[ 1 ] );
file.delete( Selectors.SELECT_SELF );
}

Commande touch (Création d'un nouveau fichier)

private void touch( final String[] cmd ) throws Exception
{
if ( cmd.length < 2 )
{
throw new Exception( "USAGE: touch <path>" );
}
FileSystemManager mgr = VFS.getManager();
final FileObject file = mgr.resolveFile( cwd, cmd[ 1 ] );
if ( !file.exists() )
{
file.createFile();
}
file.getContent().setLastModifiedTime( System.currentTimeMillis() );
}

Flavien Bach