You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Francesco Fazzini <ff...@gmail.com> on 2011/02/24 19:12:59 UTC

[Net] problem with listFiles(String pathname)

Dear all,

i need to retrieve metadata informations(FTPFile) from a specific file.
This snippet of code I am using works fine in Unix, but not in my
local machine(Windows).

         FTPClient ftpClient= new FTPClient();
         if(!workingDirectory.equals("")){
             ftpClient.changeWorkingDirectory(workingDirectory);
         }	
         FTPFile[] ftpFiles= ftpClient.listFiles(fileName);
         Date lastModified= ftpFiles[0].getTimestamp().getTime();

         //in the last line i get an ArrayIndexOutOfBoundsException
because "listFiles()" returns an empty array.

         I tried to sort out in these ways below, but it doesn't work the same:

         1)adding  "ftpClient.enterRemotePassiveMode();" just after
the fist line("FTPClient ftpClient= new FTPClient();").

         2)adding "ftpClient.enterLocalPassiveMode();" just after the
first line("FTPClient ftpClient= new FTPClient();").

         3)I tried also adding this configuration to the client:

         FTPClient ftpClient= new FTPClient();
         FTPClientConfig config= new FTPClientConfig(FTPClientConfig.SYST_NT);
         ftpClient.configure(config);
         if(!workingDirectory.equals("")){
             ftpClient.changeWorkingDirectory(workingDirectory);
         }	
         FTPFile[] ftpFiles= ftpClient.listFiles(fileName);
         Date lastModified= ftpFiles[0].getTimestamp().getTime();

I would like it works with both environments, do you have any ideas?
Thanks in advance.

Regards,
Francesco

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Re: [Net] problem with listFiles(String pathname)

Posted by Francesco Fazzini <ff...@gmail.com>.
Hi Christian,

thanks. Yes i need to enable the passive mode locally.
ftpClient.enterLocalPassiveMode();

Yesterday i tried to enable it(as i wrote in the first email),but i
did it in a wrong position. Sorry.
Thanks to all.

Regards,
Francesco

2011/2/25 Christian Migowski <ch...@gmail.com>:
> Hello,
>
> I don't know anything about commons-net ftp, but the cause for this
> behaviour is in the log you've sent:
>
> PORT 172,22,69,22,193,11
> 200 PORT command successful.
> LIST FILE_NAME
> 550 Cannot connect to {IP_ADDRESS} - timed out.
>
> Your windows has a firewall activated which is blocking the incoming
> data connection. You need to use PASV instead of PORT (sure there is a
> way to configure commons-net to use passive mode) or disable your
> firewall.
>
> hth,
> regards,
> christian
>
> On Fri, Feb 25, 2011 at 3:04 PM, Francesco Fazzini
> <ff...@gmail.com> wrote:
>> My problem is not the runtime exception handling, that file exists and the
>> size of this array should be always 1, wherever i run my client.
>> Now if i run it on a Unix server the size is 1, if i run it from my
>> pc(wndows) i get an empty list.
>>
>>
>> 2011/2/25 Martin Gainty <mg...@hotmail.com>:
>>>
>>> FTPFile[] ftpFiles=ftpClient.listFiles(fileName);if(ftpFiles.length==0)
>>> {
>>> //ABORT!!!
>>> }
>>>
>>> Martin
>>> ______________________________________________
>>> Verzicht und Vertraulichkeitanmerkung
>>>
>>> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
>>>
>>>
>>>
>>>
>>>
>>>
>>>> Date: Fri, 25 Feb 2011 10:10:29 +0000
>>>> Subject: Re: [Net] problem with listFiles(String pathname)
>>>> From: ffrancesco83@gmail.com
>>>> To: user@commons.apache.org
>>>> CC: sebbaz@gmail.com
>>>>
>>>> 2011/2/24 sebb <se...@gmail.com>:
>>>> > On 24 February 2011 18:12, Francesco Fazzini <ff...@gmail.com> wrote:
>>>> >> Dear all,
>>>> >>
>>>> >> i need to retrieve metadata informations(FTPFile) from a specific file.
>>>> >> This snippet of code I am using works fine in Unix, but not in my
>>>> >> local machine(Windows).
>>>> >
>>>> > Are you targeting the same ftp server?
>>>> > If not, are you sure they are serving the same files?
>>>>
>>>> Yes this client is targeting the same FTP server, and i am running the
>>>> client on two different OS. I tried also to connect to an another FTP
>>>> server(so also other files) to check if it was an issue related to a
>>>> specific FTP server but it is the same.
>>>>
>>>> >
>>>> >>         FTPClient ftpClient= new FTPClient();
>>>> >>         if(!workingDirectory.equals("")){
>>>> >>             ftpClient.changeWorkingDirectory(workingDirectory);
>>>> >>         }
>>>> >>         FTPFile[] ftpFiles= ftpClient.listFiles(fileName);
>>>> >>         Date lastModified= ftpFiles[0].getTimestamp().getTime();
>>>> >>
>>>> >>         //in the last line i get an ArrayIndexOutOfBoundsException
>>>> >> because "listFiles()" returns an empty array.
>>>> >
>>>> > That's because the code does not find any files that match.
>>>> >
>>>> >
>>>> >>         I tried to sort out in these ways below, but it doesn't work the same:
>>>> >>
>>>> >>         1)adding  "ftpClient.enterRemotePassiveMode();" just after
>>>> >> the fist line("FTPClient ftpClient= new FTPClient();").
>>>> >>
>>>> >>         2)adding "ftpClient.enterLocalPassiveMode();" just after the
>>>> >> first line("FTPClient ftpClient= new FTPClient();").
>>>> >>
>>>> >>         3)I tried also adding this configuration to the client:
>>>> >>
>>>> >>         FTPClient ftpClient= new FTPClient();
>>>> >>         FTPClientConfig config= new FTPClientConfig(FTPClientConfig.SYST_NT);
>>>> >>         ftpClient.configure(config);
>>>> >>         if(!workingDirectory.equals("")){
>>>> >>             ftpClient.changeWorkingDirectory(workingDirectory);
>>>> >>         }
>>>> >>         FTPFile[] ftpFiles= ftpClient.listFiles(fileName);
>>>> >>         Date lastModified= ftpFiles[0].getTimestamp().getTime();
>>>> >>
>>>> >> I would like it works with both environments, do you have any ideas?
>>>> >
>>>> > See above.
>>>> >
>>>> > Also, try adding control logging to the code:
>>>> >
>>>> >        ftpClient = new FTPClient();
>>>> >        ftpClient.addProtocolCommandListener(new PrintCommandListener(
>>>> >                                           new PrintWriter(System.out)));
>>>>
>>>> Additional LOG (working case Unix):
>>>>
>>>> CWD /pub/databases/files
>>>> 250 "/pub/databases/files" is new cwd.
>>>> SYST
>>>> 215 UNIX Type: L8
>>>> PORT 172,21,22,1,182,108
>>>> 200 PORT command successful.
>>>> LIST FILE_NAME
>>>> 150 Opening ASCII mode data connection for /bin/ls.
>>>> 226 Listing completed.
>>>>
>>>> Additional LOG (not working case Windows):
>>>> CWD /pub/databases/files
>>>> 250 "/pub/databases/files" is new cwd.
>>>> SYST
>>>> 215 UNIX Type: L8
>>>> PORT 172,22,69,22,193,11
>>>> 200 PORT command successful.
>>>> LIST FILE_NAME
>>>> 550 Cannot connect to {IP_ADDRESS} - timed out.
>>>> >
>>>> >> Thanks in advance.
>>>> >>
>>>> >> Regards,
>>>> >> Francesco
>>>> >>
>>>> >> ---------------------------------------------------------------------
>>>> >> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>>>> >> For additional commands, e-mail: user-help@commons.apache.org
>>>> >>
>>>> >>
>>>> >
>>>> > ---------------------------------------------------------------------
>>>> > To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>>>> > For additional commands, e-mail: user-help@commons.apache.org
>>>> >
>>>> >
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>>>> For additional commands, e-mail: user-help@commons.apache.org
>>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>> For additional commands, e-mail: user-help@commons.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Re: [Net] problem with listFiles(String pathname)

Posted by Christian Migowski <ch...@gmail.com>.
Hello,

I don't know anything about commons-net ftp, but the cause for this
behaviour is in the log you've sent:

PORT 172,22,69,22,193,11
200 PORT command successful.
LIST FILE_NAME
550 Cannot connect to {IP_ADDRESS} - timed out.

Your windows has a firewall activated which is blocking the incoming
data connection. You need to use PASV instead of PORT (sure there is a
way to configure commons-net to use passive mode) or disable your
firewall.

hth,
regards,
christian

On Fri, Feb 25, 2011 at 3:04 PM, Francesco Fazzini
<ff...@gmail.com> wrote:
> My problem is not the runtime exception handling, that file exists and the
> size of this array should be always 1, wherever i run my client.
> Now if i run it on a Unix server the size is 1, if i run it from my
> pc(wndows) i get an empty list.
>
>
> 2011/2/25 Martin Gainty <mg...@hotmail.com>:
>>
>> FTPFile[] ftpFiles=ftpClient.listFiles(fileName);if(ftpFiles.length==0)
>> {
>> //ABORT!!!
>> }
>>
>> Martin
>> ______________________________________________
>> Verzicht und Vertraulichkeitanmerkung
>>
>> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
>>
>>
>>
>>
>>
>>
>>> Date: Fri, 25 Feb 2011 10:10:29 +0000
>>> Subject: Re: [Net] problem with listFiles(String pathname)
>>> From: ffrancesco83@gmail.com
>>> To: user@commons.apache.org
>>> CC: sebbaz@gmail.com
>>>
>>> 2011/2/24 sebb <se...@gmail.com>:
>>> > On 24 February 2011 18:12, Francesco Fazzini <ff...@gmail.com> wrote:
>>> >> Dear all,
>>> >>
>>> >> i need to retrieve metadata informations(FTPFile) from a specific file.
>>> >> This snippet of code I am using works fine in Unix, but not in my
>>> >> local machine(Windows).
>>> >
>>> > Are you targeting the same ftp server?
>>> > If not, are you sure they are serving the same files?
>>>
>>> Yes this client is targeting the same FTP server, and i am running the
>>> client on two different OS. I tried also to connect to an another FTP
>>> server(so also other files) to check if it was an issue related to a
>>> specific FTP server but it is the same.
>>>
>>> >
>>> >>         FTPClient ftpClient= new FTPClient();
>>> >>         if(!workingDirectory.equals("")){
>>> >>             ftpClient.changeWorkingDirectory(workingDirectory);
>>> >>         }
>>> >>         FTPFile[] ftpFiles= ftpClient.listFiles(fileName);
>>> >>         Date lastModified= ftpFiles[0].getTimestamp().getTime();
>>> >>
>>> >>         //in the last line i get an ArrayIndexOutOfBoundsException
>>> >> because "listFiles()" returns an empty array.
>>> >
>>> > That's because the code does not find any files that match.
>>> >
>>> >
>>> >>         I tried to sort out in these ways below, but it doesn't work the same:
>>> >>
>>> >>         1)adding  "ftpClient.enterRemotePassiveMode();" just after
>>> >> the fist line("FTPClient ftpClient= new FTPClient();").
>>> >>
>>> >>         2)adding "ftpClient.enterLocalPassiveMode();" just after the
>>> >> first line("FTPClient ftpClient= new FTPClient();").
>>> >>
>>> >>         3)I tried also adding this configuration to the client:
>>> >>
>>> >>         FTPClient ftpClient= new FTPClient();
>>> >>         FTPClientConfig config= new FTPClientConfig(FTPClientConfig.SYST_NT);
>>> >>         ftpClient.configure(config);
>>> >>         if(!workingDirectory.equals("")){
>>> >>             ftpClient.changeWorkingDirectory(workingDirectory);
>>> >>         }
>>> >>         FTPFile[] ftpFiles= ftpClient.listFiles(fileName);
>>> >>         Date lastModified= ftpFiles[0].getTimestamp().getTime();
>>> >>
>>> >> I would like it works with both environments, do you have any ideas?
>>> >
>>> > See above.
>>> >
>>> > Also, try adding control logging to the code:
>>> >
>>> >        ftpClient = new FTPClient();
>>> >        ftpClient.addProtocolCommandListener(new PrintCommandListener(
>>> >                                           new PrintWriter(System.out)));
>>>
>>> Additional LOG (working case Unix):
>>>
>>> CWD /pub/databases/files
>>> 250 "/pub/databases/files" is new cwd.
>>> SYST
>>> 215 UNIX Type: L8
>>> PORT 172,21,22,1,182,108
>>> 200 PORT command successful.
>>> LIST FILE_NAME
>>> 150 Opening ASCII mode data connection for /bin/ls.
>>> 226 Listing completed.
>>>
>>> Additional LOG (not working case Windows):
>>> CWD /pub/databases/files
>>> 250 "/pub/databases/files" is new cwd.
>>> SYST
>>> 215 UNIX Type: L8
>>> PORT 172,22,69,22,193,11
>>> 200 PORT command successful.
>>> LIST FILE_NAME
>>> 550 Cannot connect to {IP_ADDRESS} - timed out.
>>> >
>>> >> Thanks in advance.
>>> >>
>>> >> Regards,
>>> >> Francesco
>>> >>
>>> >> ---------------------------------------------------------------------
>>> >> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>>> >> For additional commands, e-mail: user-help@commons.apache.org
>>> >>
>>> >>
>>> >
>>> > ---------------------------------------------------------------------
>>> > To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>>> > For additional commands, e-mail: user-help@commons.apache.org
>>> >
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>>> For additional commands, e-mail: user-help@commons.apache.org
>>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Re: [Net] problem with listFiles(String pathname)

Posted by Francesco Fazzini <ff...@gmail.com>.
My problem is not the runtime exception handling, that file exists and the
size of this array should be always 1, wherever i run my client.
Now if i run it on a Unix server the size is 1, if i run it from my
pc(wndows) i get an empty list.


2011/2/25 Martin Gainty <mg...@hotmail.com>:
>
> FTPFile[] ftpFiles=ftpClient.listFiles(fileName);if(ftpFiles.length==0)
> {
> //ABORT!!!
> }
>
> Martin
> ______________________________________________
> Verzicht und Vertraulichkeitanmerkung
>
> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
>
>
>
>
>
>
>> Date: Fri, 25 Feb 2011 10:10:29 +0000
>> Subject: Re: [Net] problem with listFiles(String pathname)
>> From: ffrancesco83@gmail.com
>> To: user@commons.apache.org
>> CC: sebbaz@gmail.com
>>
>> 2011/2/24 sebb <se...@gmail.com>:
>> > On 24 February 2011 18:12, Francesco Fazzini <ff...@gmail.com> wrote:
>> >> Dear all,
>> >>
>> >> i need to retrieve metadata informations(FTPFile) from a specific file.
>> >> This snippet of code I am using works fine in Unix, but not in my
>> >> local machine(Windows).
>> >
>> > Are you targeting the same ftp server?
>> > If not, are you sure they are serving the same files?
>>
>> Yes this client is targeting the same FTP server, and i am running the
>> client on two different OS. I tried also to connect to an another FTP
>> server(so also other files) to check if it was an issue related to a
>> specific FTP server but it is the same.
>>
>> >
>> >>         FTPClient ftpClient= new FTPClient();
>> >>         if(!workingDirectory.equals("")){
>> >>             ftpClient.changeWorkingDirectory(workingDirectory);
>> >>         }
>> >>         FTPFile[] ftpFiles= ftpClient.listFiles(fileName);
>> >>         Date lastModified= ftpFiles[0].getTimestamp().getTime();
>> >>
>> >>         //in the last line i get an ArrayIndexOutOfBoundsException
>> >> because "listFiles()" returns an empty array.
>> >
>> > That's because the code does not find any files that match.
>> >
>> >
>> >>         I tried to sort out in these ways below, but it doesn't work the same:
>> >>
>> >>         1)adding  "ftpClient.enterRemotePassiveMode();" just after
>> >> the fist line("FTPClient ftpClient= new FTPClient();").
>> >>
>> >>         2)adding "ftpClient.enterLocalPassiveMode();" just after the
>> >> first line("FTPClient ftpClient= new FTPClient();").
>> >>
>> >>         3)I tried also adding this configuration to the client:
>> >>
>> >>         FTPClient ftpClient= new FTPClient();
>> >>         FTPClientConfig config= new FTPClientConfig(FTPClientConfig.SYST_NT);
>> >>         ftpClient.configure(config);
>> >>         if(!workingDirectory.equals("")){
>> >>             ftpClient.changeWorkingDirectory(workingDirectory);
>> >>         }
>> >>         FTPFile[] ftpFiles= ftpClient.listFiles(fileName);
>> >>         Date lastModified= ftpFiles[0].getTimestamp().getTime();
>> >>
>> >> I would like it works with both environments, do you have any ideas?
>> >
>> > See above.
>> >
>> > Also, try adding control logging to the code:
>> >
>> >        ftpClient = new FTPClient();
>> >        ftpClient.addProtocolCommandListener(new PrintCommandListener(
>> >                                           new PrintWriter(System.out)));
>>
>> Additional LOG (working case Unix):
>>
>> CWD /pub/databases/files
>> 250 "/pub/databases/files" is new cwd.
>> SYST
>> 215 UNIX Type: L8
>> PORT 172,21,22,1,182,108
>> 200 PORT command successful.
>> LIST FILE_NAME
>> 150 Opening ASCII mode data connection for /bin/ls.
>> 226 Listing completed.
>>
>> Additional LOG (not working case Windows):
>> CWD /pub/databases/files
>> 250 "/pub/databases/files" is new cwd.
>> SYST
>> 215 UNIX Type: L8
>> PORT 172,22,69,22,193,11
>> 200 PORT command successful.
>> LIST FILE_NAME
>> 550 Cannot connect to {IP_ADDRESS} - timed out.
>> >
>> >> Thanks in advance.
>> >>
>> >> Regards,
>> >> Francesco
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>> >> For additional commands, e-mail: user-help@commons.apache.org
>> >>
>> >>
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>> > For additional commands, e-mail: user-help@commons.apache.org
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>> For additional commands, e-mail: user-help@commons.apache.org
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


RE: [Net] problem with listFiles(String pathname)

Posted by Martin Gainty <mg...@hotmail.com>.
FTPFile[] ftpFiles=ftpClient.listFiles(fileName);if(ftpFiles.length==0)
{
//ABORT!!!
}

Martin 
______________________________________________ 
Verzicht und Vertraulichkeitanmerkung
 
Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.






> Date: Fri, 25 Feb 2011 10:10:29 +0000
> Subject: Re: [Net] problem with listFiles(String pathname)
> From: ffrancesco83@gmail.com
> To: user@commons.apache.org
> CC: sebbaz@gmail.com
> 
> 2011/2/24 sebb <se...@gmail.com>:
> > On 24 February 2011 18:12, Francesco Fazzini <ff...@gmail.com> wrote:
> >> Dear all,
> >>
> >> i need to retrieve metadata informations(FTPFile) from a specific file.
> >> This snippet of code I am using works fine in Unix, but not in my
> >> local machine(Windows).
> >
> > Are you targeting the same ftp server?
> > If not, are you sure they are serving the same files?
> 
> Yes this client is targeting the same FTP server, and i am running the
> client on two different OS. I tried also to connect to an another FTP
> server(so also other files) to check if it was an issue related to a
> specific FTP server but it is the same.
> 
> >
> >>         FTPClient ftpClient= new FTPClient();
> >>         if(!workingDirectory.equals("")){
> >>             ftpClient.changeWorkingDirectory(workingDirectory);
> >>         }
> >>         FTPFile[] ftpFiles= ftpClient.listFiles(fileName);
> >>         Date lastModified= ftpFiles[0].getTimestamp().getTime();
> >>
> >>         //in the last line i get an ArrayIndexOutOfBoundsException
> >> because "listFiles()" returns an empty array.
> >
> > That's because the code does not find any files that match.
> >
> >
> >>         I tried to sort out in these ways below, but it doesn't work the same:
> >>
> >>         1)adding  "ftpClient.enterRemotePassiveMode();" just after
> >> the fist line("FTPClient ftpClient= new FTPClient();").
> >>
> >>         2)adding "ftpClient.enterLocalPassiveMode();" just after the
> >> first line("FTPClient ftpClient= new FTPClient();").
> >>
> >>         3)I tried also adding this configuration to the client:
> >>
> >>         FTPClient ftpClient= new FTPClient();
> >>         FTPClientConfig config= new FTPClientConfig(FTPClientConfig.SYST_NT);
> >>         ftpClient.configure(config);
> >>         if(!workingDirectory.equals("")){
> >>             ftpClient.changeWorkingDirectory(workingDirectory);
> >>         }
> >>         FTPFile[] ftpFiles= ftpClient.listFiles(fileName);
> >>         Date lastModified= ftpFiles[0].getTimestamp().getTime();
> >>
> >> I would like it works with both environments, do you have any ideas?
> >
> > See above.
> >
> > Also, try adding control logging to the code:
> >
> >        ftpClient = new FTPClient();
> >        ftpClient.addProtocolCommandListener(new PrintCommandListener(
> >                                           new PrintWriter(System.out)));
> 
> Additional LOG (working case Unix):
> 
> CWD /pub/databases/files
> 250 "/pub/databases/files" is new cwd.
> SYST
> 215 UNIX Type: L8
> PORT 172,21,22,1,182,108
> 200 PORT command successful.
> LIST FILE_NAME
> 150 Opening ASCII mode data connection for /bin/ls.
> 226 Listing completed.
> 
> Additional LOG (not working case Windows):
> CWD /pub/databases/files
> 250 "/pub/databases/files" is new cwd.
> SYST
> 215 UNIX Type: L8
> PORT 172,22,69,22,193,11
> 200 PORT command successful.
> LIST FILE_NAME
> 550 Cannot connect to {IP_ADDRESS} - timed out.
> >
> >> Thanks in advance.
> >>
> >> Regards,
> >> Francesco
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> >> For additional commands, e-mail: user-help@commons.apache.org
> >>
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> > For additional commands, e-mail: user-help@commons.apache.org
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
> 
 		 	   		  

Re: [Net] problem with listFiles(String pathname)

Posted by Francesco Fazzini <ff...@gmail.com>.
2011/2/24 sebb <se...@gmail.com>:
> On 24 February 2011 18:12, Francesco Fazzini <ff...@gmail.com> wrote:
>> Dear all,
>>
>> i need to retrieve metadata informations(FTPFile) from a specific file.
>> This snippet of code I am using works fine in Unix, but not in my
>> local machine(Windows).
>
> Are you targeting the same ftp server?
> If not, are you sure they are serving the same files?

Yes this client is targeting the same FTP server, and i am running the
client on two different OS. I tried also to connect to an another FTP
server(so also other files) to check if it was an issue related to a
specific FTP server but it is the same.

>
>>         FTPClient ftpClient= new FTPClient();
>>         if(!workingDirectory.equals("")){
>>             ftpClient.changeWorkingDirectory(workingDirectory);
>>         }
>>         FTPFile[] ftpFiles= ftpClient.listFiles(fileName);
>>         Date lastModified= ftpFiles[0].getTimestamp().getTime();
>>
>>         //in the last line i get an ArrayIndexOutOfBoundsException
>> because "listFiles()" returns an empty array.
>
> That's because the code does not find any files that match.
>
>
>>         I tried to sort out in these ways below, but it doesn't work the same:
>>
>>         1)adding  "ftpClient.enterRemotePassiveMode();" just after
>> the fist line("FTPClient ftpClient= new FTPClient();").
>>
>>         2)adding "ftpClient.enterLocalPassiveMode();" just after the
>> first line("FTPClient ftpClient= new FTPClient();").
>>
>>         3)I tried also adding this configuration to the client:
>>
>>         FTPClient ftpClient= new FTPClient();
>>         FTPClientConfig config= new FTPClientConfig(FTPClientConfig.SYST_NT);
>>         ftpClient.configure(config);
>>         if(!workingDirectory.equals("")){
>>             ftpClient.changeWorkingDirectory(workingDirectory);
>>         }
>>         FTPFile[] ftpFiles= ftpClient.listFiles(fileName);
>>         Date lastModified= ftpFiles[0].getTimestamp().getTime();
>>
>> I would like it works with both environments, do you have any ideas?
>
> See above.
>
> Also, try adding control logging to the code:
>
>        ftpClient = new FTPClient();
>        ftpClient.addProtocolCommandListener(new PrintCommandListener(
>                                           new PrintWriter(System.out)));

Additional LOG (working case Unix):

CWD /pub/databases/files
250 "/pub/databases/files" is new cwd.
SYST
215 UNIX Type: L8
PORT 172,21,22,1,182,108
200 PORT command successful.
LIST FILE_NAME
150 Opening ASCII mode data connection for /bin/ls.
226 Listing completed.

Additional LOG (not working case Windows):
CWD /pub/databases/files
250 "/pub/databases/files" is new cwd.
SYST
215 UNIX Type: L8
PORT 172,22,69,22,193,11
200 PORT command successful.
LIST FILE_NAME
550 Cannot connect to {IP_ADDRESS} - timed out.
>
>> Thanks in advance.
>>
>> Regards,
>> Francesco
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>> For additional commands, e-mail: user-help@commons.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Re: [Net] problem with listFiles(String pathname)

Posted by sebb <se...@gmail.com>.
On 24 February 2011 18:12, Francesco Fazzini <ff...@gmail.com> wrote:
> Dear all,
>
> i need to retrieve metadata informations(FTPFile) from a specific file.
> This snippet of code I am using works fine in Unix, but not in my
> local machine(Windows).

Are you targeting the same ftp server?
If not, are you sure they are serving the same files?

>         FTPClient ftpClient= new FTPClient();
>         if(!workingDirectory.equals("")){
>             ftpClient.changeWorkingDirectory(workingDirectory);
>         }
>         FTPFile[] ftpFiles= ftpClient.listFiles(fileName);
>         Date lastModified= ftpFiles[0].getTimestamp().getTime();
>
>         //in the last line i get an ArrayIndexOutOfBoundsException
> because "listFiles()" returns an empty array.

That's because the code does not find any files that match.


>         I tried to sort out in these ways below, but it doesn't work the same:
>
>         1)adding  "ftpClient.enterRemotePassiveMode();" just after
> the fist line("FTPClient ftpClient= new FTPClient();").
>
>         2)adding "ftpClient.enterLocalPassiveMode();" just after the
> first line("FTPClient ftpClient= new FTPClient();").
>
>         3)I tried also adding this configuration to the client:
>
>         FTPClient ftpClient= new FTPClient();
>         FTPClientConfig config= new FTPClientConfig(FTPClientConfig.SYST_NT);
>         ftpClient.configure(config);
>         if(!workingDirectory.equals("")){
>             ftpClient.changeWorkingDirectory(workingDirectory);
>         }
>         FTPFile[] ftpFiles= ftpClient.listFiles(fileName);
>         Date lastModified= ftpFiles[0].getTimestamp().getTime();
>
> I would like it works with both environments, do you have any ideas?

See above.

Also, try adding control logging to the code:

        ftpClient = new FTPClient();
        ftpClient.addProtocolCommandListener(new PrintCommandListener(
                                           new PrintWriter(System.out)));

> Thanks in advance.
>
> Regards,
> Francesco
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org