private void RequestListDirectory(FtpDirectory NewDir) { FcRequestDynamicPort PasvCmd = new FcRequestDynamicPort(); Service.PushNewCommand(PasvCmd); FcListDirectory Cmd = new FcListDirectory(NewDir); Cmd.OnDirectoryListed += OnFtpDirectoryListed; Service.PushNewCommand(Cmd); }
private void ButtonScanRecursive_Click(object sender, EventArgs e) { MarkInterfaceBusy(true); CommandsLeft = 0; ++CommandsLeft; Service.PushNewCommand(new FcRequestDynamicPort()); RecursiveTree = new FtpDirectory(); FcListDirectory Dir = new FcListDirectory(RecursiveTree); Dir.OnDirectoryListed += RecursiveOnDirectoryListed; Service.PushNewCommand(Dir); }
private void RecursiveOnDirectoryListed(bool Success, FtpDirectory Directory) { --CommandsLeft; foreach (FtpDirectory Subdir in Directory.Subdirectories) { ++CommandsLeft; Service.PushNewCommand(new FcRequestDynamicPort()); FcListDirectory Dir = new FcListDirectory(Subdir); Dir.OnDirectoryListed += RecursiveOnDirectoryListed; Service.PushNewCommand(Dir); } if (CommandsLeft == 0) { Invoke(new Action(() => { ListboxDirContents.Items.Clear(); CurrentDir = RecursiveTree; RecursivePrintDirectory(RecursiveTree); })); } }