Get file or folder info using FTP

Server responses to FTP protocol’s LIST command are not well standardized. Ftp.dll FTP .NET component was programmed to handle almost any format of such response. This includes UNIX, Linux and Windows systems. Additionally if a server supports better standardized MLSD command, it is used instead of LIST.

To list all files and folders in current folder just use GetList method of Ftp class.
You’ll receive FtpItem collection you can easy iterate over. You can access each item’s information like: name, size, modification date by using FtpItem‘s properties.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// C# version
 
using (Ftp client = new Ftp())
{
    client.Connect("ftp.example.org");    // or ConnectSSL for SSL
    client.Login("user", "password");
 
    List<FtpItem> items = client.GetList();
 
    foreach (FtpItem item in items)
    {
        Console.WriteLine("Name:        {0}", item.Name);
        Console.WriteLine("Size:        {0}", item.Size);
        Console.WriteLine("Modify date: {0}", item.ModifyDate);
 
        Console.WriteLine("Is folder:   {0}", item.IsFolder);
        Console.WriteLine("Is file:     {0}", item.IsFile);
        Console.WriteLine("Is symlink:  {0}", item.IsSymlink);
 
        Console.WriteLine();
    }
 
    client.Close();
}
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
' VB.NET version
 
Using client As New Ftp()
    client.Connect("ftp.example.org")    ' or ConnectSSL for SSL
    client.Login("user", "password")
 
    Dim items As List(Of FtpItem) = client.GetList()
 
    For Each item As FtpItem In items
        Console.WriteLine("Name:        {0}", item.Name)
        Console.WriteLine("Size:        {0}", item.Size)
        Console.WriteLine("Modify date: {0}", item.ModifyDate)
 
        Console.WriteLine("Is folder:   {0}", item.IsFolder)
        Console.WriteLine("Is file:     {0}", item.IsFile)
        Console.WriteLine("Is symlink:  {0}", item.IsSymlink)
 
        Console.WriteLine()
    Next
 
    client.Close()
End Using

Getting basic file information using FTP

Follow code illustrates how to get basic information about specific file, such as size and last modification date, using FTP protocol:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
// C# version
 
using (Ftp client = new Ftp())
{
    client.Connect("ftp.example.org");
    client.Login("user", "password");
 
    long size = client.GetFileSize("reports/report_2010.txt");
    DateTime date = client.GetFileModificationTime("reports/report_2010.txt");
 
    Console.WriteLine("Size:        {0}", size);
    Console.WriteLine("Modify date: {0}", date);
 
    client.Close();
}
01
02
03
04
05
06
07
08
09
10
11
12
13
14
' VB.NET version
 
Using client As New Ftp()
    client.Connect("ftp.example.org")
    client.Login("user", "password")
 
    Dim size As Long = client.GetFileSize("reports/report_2010.txt")
    Dim [date] As DateTime = client.GetFileModificationTime("reports/report_2010.txt")
 
    Console.WriteLine("Size:        {0}", size)
    Console.WriteLine("Modify date: {0}", [date])
 
    client.Close()
End Using

You can download Ftp.dll FTP/FTPS client for .NET here.

Tags:    

Questions?

Consider using our Q&A forum for asking questions.