Hello fellow super coder people

i am rtying to list all the files in a certain directory (eg. "TestDir") in a combobox

try
            {
                m_ftp.Server = txtftpServerName.Text;
                m_ftp.Username = txtftpUserName.Text;
                m_ftp.Password = txtftpPassword.Text;

                m_ftp.Login();
                string[] The_File = m_ftp.GetFileList("TestDir");

                foreach (string FILE in The_File)
                {
                    cboFindFile.Items.Add(FILE);
                    Console.Write(FILE);
                }
                m_ftp.Close();
            }
            catch(Exception EX)
            {
                MessageBox.Show("Files Not Downloaded");
            }

That only downloads one file into the combobox ...

Any ideas ???
please help...

Regards and thanks...

I would expect it to. youve asked it to show you the details of the directory, not the contents within it.

Ok i understand that , thank you very much ... i tested a few other ways, but for argument sake lets say i said

string[] The_Files = m_ftp.GetFileList("/");

or

string[] The_Files = m_ftp.GetFileList("TestDir/");

or even

string[] The_Files = m_ftp.GetFileList("//TestDir/");

/* Just keep in mind that the TCP is already connected so specifying just a directory works for Upload and delete */

It gives me the same problem , so could you maybe make my day worth wile and help me try something else ?

Even a total different approach is fine, i can adjust my code...

LizR - you rock , thanks for your help

NO luck yet ...

can you maybe give me some other example ??

Maybe a 'for' loop ??

The directory contains about 5 zipped files , trust me i have been debugging ... hahaha, i guess this leaves me at phase one again, but rest asured, i never give up, i will post the working code soon, watch this space ... hehehe

The problem must be within the loop somewhere, thats why i think maybe doing a 'for' loop rather than a 'foreach' loop, because it does give me the first file in the dir, but there are about five .bak files that are zipped ... so lets say .zip files

Anyway , thanks for your attempt

no no, you're missing the point.
If the function you're calling only sends back the 1 file, then thats all it has to send. For loop and foreach wont make any difference.

if the array only has the 1 file, you cant change that

Ok i think i know whats wrong here

i think that the files are not registering in the array - what you said

private void FindFiles(object sender, EventArgs e)
        {
            try
            {
                m_ftp.Server = txtftpServerName.Text;
                m_ftp.Username = txtftpUserName.Text;
                m_ftp.Password = txtftpPassword.Text;

                m_ftp.Login();

                m_ftp.ChangeDir(txtToDirectory.Text);

                string[] fi = m_ftp.GetFileList();

                cboFindFile.Items.AddRange(fi);

                m_ftp.Close();
            }
            catch(Exception EX)
            {
                MessageBox.Show("File Not Downloaded");
            }
        }

I dont even have a loop there but it works exactly the same ...

i realize what the problem is , but the solution i do not know at this stage ... guess i will have to use a different FTP class

I'm glad we both know the problem, but where can i go from here ??

Well, its one of the following:

1. that the folder your FTP server connects to is different to the one you think it is

2. the FTP component you're using isnt good

3. the FTP server is sending back odd information and its not being parsed right

4. What you told it to do is fundementally wrong.

Try this.

make a new app
create a new ftp thing (wether its component or just a class)
connect to ftp.microsoft.com
login as ftp
password test@home
get a list of files.

What does it get?

This article has been dead for over six months. Start a new discussion instead.