using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AR.FTPClient
{
    public interface IFTPClient
    {
        void Dispose();
        string errorMessage { get; set; }
        //string Host { get; set; }
        //string UserID { get; set; }
        //string UserPassword { get; set; }
        //int Port { get; set; }
        System.Text.Encoding TextEncoding { get; set; }
        Boolean Download(string remoteFile, string localFile,bool overwrite=false);
        Boolean Upload(string remoteFile, string localFile);
        Boolean Delete(string remotefile);
        Boolean rename(string currentFileNameAndPath, string newFileName);
        bool createDirectory(string newDirectory);
        bool RemoveDirectory(string Directory);
        string getFileCreatedDateTime(string fileName);
        string getFileSize(string fileName);
        string[] directoryListSimple(string directory);
        FTPdirectory ListDirectoryDetail(string directory);
        event EventHandler<MessageEventArgs> Message;
        event EventHandler<ListProgressEventArgs> ListPrgress;
        void RaiseMessage(Boolean isError, string message);
        string PathCombine(string path, string add);
        string PathFileCombine(string path, string add);
        string getParent(string path);
    }
}
