2011/2/24 sebb <[email protected]>:
> On 24 February 2011 18:12, Francesco Fazzini <[email protected]> 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: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]