Our Products:   CompleteFTP  edtFTPnet/Free  edtFTPnet/PRO  edtFTPj/Free  edtFTPj/PRO
0 votes
3.4k views
in .NET FTP by (160 points)
Hi,
We have a console application, it will try to Check and Get the file from FTP server every 10 minutes, if file exist. Now don't know what happen the looping not working anymore. If straight away terminate without looping anymore.

Using edtFTPnet-1.1.9

Portion: case("-g"):
            Try ... Catch Block

Source Code:

using System;
using System.IO;
using System.Timers;
using System.Configuration;
using System.Web.Mail;
using System.Text.RegularExpressions;

namespace FileWatchFTP
{
   class FileWatch
   {
      [STAThread]
      static void Main(string[] args)
      {
         string operation = args[0];
         switch(operation)
         {
            case("-s"):

               #region Send File
               //check that args should be 6
               if(args.Length==6)
               {
                  string host = args[1];
                  string username = args[2];
                  string password = args[3];
                  string filename = args[4];
                  string targetFile = args[5];

                  try
                  {
                     FileWatchFTP.GFTP.FTPSendFile(host, username, password, filename, targetFile);
                  }
                  catch(Exception exp)
                  {
                     Console.WriteLine(exp.Message);
                  }
               }
               else
               {
                  Console.WriteLine("Wrong No Of Arguments for this operation");
                  System.Environment.Exit(1);
               }
               #endregion
               break;

            case("-g"):
               #region Get File
               //check that no of args should be 8
               if(args.Length==8)
               {
                  string host = args[1];
                  string username = args[2];
                  string password = args[3];
                  string filename = args[4];
                  string targetFile = args[5];
                  int sleepInterval = int.Parse(args[6]);
                  
                  string[] arg = Regex.Split(args[7], ":");
                  int hour = int.Parse(arg[0]);
                  int minute = int.Parse(arg[1]);

                  DateTime now = System.DateTime.Now;
                  DateTime endTime = new DateTime(now.Year, now.Month, now.Day, hour, minute, now.Second);

                  bool found = false;
                  
                  Console.WriteLine("Program End Time: " + endTime.ToLongTimeString());
                  Console.WriteLine("System Time: " + System.DateTime.Now.ToLongTimeString());

                  while(!found && System.DateTime.Now < endTime)
                  {
                     try
                     {
                        FileWatchFTP.GFTP.FTPGetFile(host, username, password, filename, targetFile);
                        found = true;
                        Console.WriteLine("System Time: " + System.DateTime.Now.Hour.ToString() + ":" + System.DateTime.Now.Minute.ToString() + ":" + System.DateTime.Now.Second.ToString());
                     }
                     catch(Exception exp)
                     {
                        found = false;
                        Console.WriteLine("Exception: " + exp.Message);
                        Console.WriteLine(System.DateTime.Now.ToLongTimeString() + ": " + "File is not avaliable yet");
                     }
         &nbs

3 Answers

0 votes
by (51.6k points)
I'm sorry, but I don't really understand what the problem is. Could you please describe it in a bit more detail?

- Hans (EDT)
0 votes
by (160 points)
The problems is:
1. If the File not exist in the FTP server, the Try ... Catch Block on Class FTPWatch should catch it and wait for another 10 minutes and after that login to FTP server again and look for the file. But now it straight away by pass the catch block.
2. Under Class GFTP method -> ftp.Get(targetFile, filename); . If file not found, it will catch the exception. And back to Class FTPWatch method portion -> FileWatchFTP.GFTP.FTPGetFile(host, username, password, filename, targetFile);

Above is under console.

Note: I download the version 1.1.9, but when want to load it as a component under Window Form, I get the following error message:

There are no components in 'C:\unzipped\edtftpnet-1.1.9[1]\edtftpnet-1.1.9\bin\edtftpnet-1.1.9.dll' that can be placed on the toolbox.

Thanks for ur help ...
0 votes
by (162k points)
There are no components in 1.1.9, just classes - try the latest version to get the FTPConnection component.

Categories

...