protected override void InvokeOnChangeDirectory(FtpChangeDirectoryArgs e) { String lPath = e.NewDirectory; if (lPath.IndexOf('/') != 0) { throw new Exception(String.Format("Not an absolute path: \"{0}\"", lPath)); } VirtualFtpSession lSession = (VirtualFtpSession)e.Session; IFtpFolder lFolder = RootFolder.DigForSubFolder(lPath.Substring(1), lSession); if (lFolder != null) { ((VirtualFtpSession)e.Session).CurrentFolder = lFolder; } e.ChangeDirOk = (lFolder != null); base.InvokeOnChangeDirectory(e); }