2014年11月11日

FTP Trans file low level coding implementation...

#include <stdio.h>

#include <windows.h>

#include <wininet.h>

#include <process.h>

#pragma comment(lib, "WININET.LIB")

 

int main()

{

BOOL bSuccess;

HINTERNET hIntSession;

HINTERNET hFtpSession;

//HINTERNET hFind;

//char szBuffer[64];

//WIN32_FIND_DATA findData;

 

char szAppName[] = "mydll";

char szServer[] = "192.168.101.225";

char szUser[] = "qpid";

char szPwd[] = "qpid";

char szDirectory[] = "/home/qpid/mydll";

char szFile[] = "mylib.dll";

char szCurDir[MAX_PATH];

char szNewFile[] = "c:\\mylib.dll";

DWORD dwCurDir = MAX_PATH;

 

printf("try to open intSession...\n");

hIntSession = InternetOpen(szAppName, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);

if(hIntSession == NULL)

{

printf("can not open intSession!\n");

return -1;

}

printf("intSession is open!\n");

 

printf("try to open ftpSession...\n");

hFtpSession = InternetConnect(hIntSession, szServer, INTERNET_DEFAULT_FTP_PORT, szUser, szPwd, INTERNET_SERVICE_FTP, 0, 0);

if(hFtpSession == NULL)

{

InternetCloseHandle(hIntSession);

printf("can not open ftpSession!\n");

return -1;

}

printf("ftpSession is open!\n");

 

ZeroMemory(szCurDir, sizeof(szCurDir));

FtpGetCurrentDirectory(hFtpSession, szCurDir, &dwCurDir);

printf("current dir is %s .\n", szCurDir);

 

printf("try to set current directory...\n");

bSuccess = FtpSetCurrentDirectory(hFtpSession, szDirectory);

if(!bSuccess)

{

InternetCloseHandle(hFtpSession);

InternetCloseHandle(hIntSession);

printf("can not set directory!\n");

return -1;

}

printf("set directory ok!\n");

 

printf("try to get file...\n");

FtpGetFile(hFtpSession, szFile, szNewFile, TRUE, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY, 0);

 

//InternetCloseHandle(hFind);

InternetCloseHandle(hFtpSession);

InternetCloseHandle(hIntSession);

 

return 0;

}

posted @ 2014-11-11 18:36 xuqi 阅读(92) | 评论 (0)编辑 收藏

删除FTP服务器文件递归伪代码  

//伪代码

 void DeleteFtpDiretoryFile(string path)

        {

            if (path is file)//文件直接删除

            {

                m_ftpAdapter.DeleteFileName(path);

                return;

            }

   //path为文件夹,获取文件夹下的文件列表

            List<string> listFileName = new List<string>();

            GetFileList(listFileName);

            if (listFileName.Count < 1)

            {

//该文件夹为空文件夹,直接删除

                m_ftpAdapter.delDir(path);

                return;

            }

   //遍历path文件夹

            foreach (string strFileName in listFileName)

            {

                string strChildFilePaht = path +'/' + strFileName;

                if (IsDiretory(strChildFilePaht))//子文件夹递归处理

                {

                    DeleteFtpDiretoryFile(strChildFilePaht);

                }

                else

                {

    //文件直接删除

                    m_ftpAdapter.DeleteFileName(strChildFilePaht);

                }

            }

   //path文件夹下东西都删除了,删除空文件夹

            m_ftpAdapter.delDir(path);

        }

posted @ 2014-11-11 18:35 xuqi 阅读(53) | 评论 (0)编辑 收藏

递归下载FTP服务器文件  

//伪代码

void DownLoadFtpDiretoryFile(string ftpPath, string LocalPath)

        {

            if (ftpPath is file)//文件直接下载

            {

                m_ftpAdapter.Download(ftpPath, LocalPath);

                return;

            }

            else

            {

                if (Directory.IsExists(LocalPath))//服务器文件夹,先确认本地文件夹是否存在

                {

                    Directory.CreateDirectory(LocalPath);

                };

            }

            List<string> listFileName = new List<string>();

            m_ftpAdapter.GetFileList(listFileName);            

    //遍历ftpPath下的文件

            foreach (string strFileName in listFileName)

            {

                if (IsDiretory(strFileName ))//是文件夹就递归

                {

                    DownLoadFtpDiretoryFile(strFtpChildFilePaht, strLocalChildFilePaht);

                }

                else

                {

    //是文件,直接下载

                    m_ftpAdapter.Download(strFtpChildFilePaht, strLocalChildFilePaht);

                }

            }

        }

 

posted @ 2014-11-11 18:34 xuqi 阅读(73) | 评论 (0)编辑 收藏

仅列出标题  
<2019年6月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜