package com.
ftp.server.commands;import com.
ftp.server.log.Log;import java.io.File;
import java.util.regex.Pattern;
/**
* Klasse implementerer håndtering af CDUP kommandoen, der modtages fra
* klienten.
*
* @author René Iversen, Søren Christensen og Strange Poulsen.
*/
public class CdupCommand extends AbstractCommand
{
/**
* Håndterer hvad der skal svares tilbage på CDUP kommandoen.
*/
public void respond()
{
if( !Pattern.matches( "CDUP", commandLine ) )
syntaxError();
else
{
String currentPath = owner.getCurrentDirectory().getAbsolutePath();
int offSet = currentPath.lastIndexOf( "\\" );
File newPath = new File( currentPath.substring( 0, offSet ) );
logHandler.logEvent( "Asked to change directory: '" +
currentPath + " -> "
+ newPath.getAbsolutePath() + "'", Log.LOG );
if( !newPath.exists() || !owner.getUser().hasReadAccess( newPath ) )
writeLine( "550 The action could not be completed" );
else
{
owner.setCurrentDirectory( newPath );
writeLine( "200 Directory changed successfully" );
}
}
}
}
det skal siges der kun er problemet med commands pakken. Men nogle commands bliver reverse engineered