Click here to Skip to main content
15,884,176 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I have found a code in managed c++/CLI but i want it to combine with unmanaged code. Some where i am missing something that is why it's not working, so i need help. Please anyone is there who knows the coding of ftp upload in unmanaged C++.
Actually i have written a code for searching some specific document on my system and i want that the searched files to be upload to my ftp server. This is my only desire.

code is:
#include <string>
#include <vector>
#include <iostream>
#include <fstream>

#include <windows.h>
#include <conio.h>

using namespace std;

int SearchDirectory(std::vector<std::string> &refvecFiles,
const std::string &refcstrRootDirectory,
const std::string &refcstrExtension,
bool bSearchSubdirectories = true)
{
std::string strFilePath; // Filepath
std::string strPattern; // Pattern
std::string strExtension; // Extension
HANDLE hFile; // Handle to file
WIN32_FIND_DATA FileInformation; // File information


strPattern = refcstrRootDirectory + "\\*.*";

hFile = ::FindFirstFile(strPattern.c_str(), &FileInformation);
if(hFile != INVALID_HANDLE_VALUE)
{
do
{
if(FileInformation.cFileName[0] != '.')
{
strFilePath.erase();
strFilePath = refcstrRootDirectory + "\\" + FileInformation.cFileName;

if(FileInformation.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if(bSearchSubdirectories)
{
// Search subdirectory
int iRC = SearchDirectory(refvecFiles,strFilePath,refcstrExtension,bSearchSubdirectories);
if(iRC)
return iRC;
}
}
else
{
// Check extension
strExtension = FileInformation.cFileName;
strExtension = strExtension.substr(strExtension.rfind(".") + 1);

if(strExtension == refcstrExtension)
{
// Save filename
refvecFiles.push_back(strFilePath);
// I want to insert my codes here for ftp upload
}
}
}
} while(::FindNextFile(hFile, &FileInformation) == TRUE);

// Close handle
::FindClose(hFile);

DWORD dwError = ::GetLastError();
if(dwError != ERROR_NO_MORE_FILES)
return dwError;
}

return 0;
}


int main()
{
string exten[5];
char str[8];
int x=0;
cout<<"Enter the number extentions of file you want to search: ";
cin>>x;
for(int m=1;m<=x;m++){
cout<<"Enter the "<<m<<" extention of file you want to search: ";
cin>>str;
exten[m]= str;
}
string drive[] = {"C:\\","D:\\","E:\\","F:\\","G:\\","H:\\"};
int k = sizeof(exten)/sizeof(exten[0]);
int l = sizeof(drive)/sizeof(drive[0]);
int iRC = 0;
std::vector<std::string> vecAllFiles;
std::vector<std::string> vecTxtFiles;

cout << "Searching....\n\n";
remove("log.txt");
ofstream myfile ("log.txt", ios::app);
for(int j=0; j < 6; j++)
{

for(int i=0; i < k; i++)
{

// Search 'c:' for '.avi' files including subdirectories
iRC = SearchDirectory(vecAllFiles, drive[j], exten[i]);
if(iRC)
{
std::cout << "Error " << iRC << std::endl;
return 0;
}

}


}
// Print results
for(std::vector<std::string>::iterator iterAll = vecAllFiles.begin();
iterAll != vecAllFiles.end();
++iterAll)
{
std::cout << *iterAll << std::endl;
myfile << *iterAll << endl;
}
cout << "\nDone\n";
// Wait for keystroke
cout << "\n";
return 0;

}


thanks in advance.
Posted
Updated 20-Jun-10 7:35am
v6

1 solution

If you are using MFC here[^] are the steps of typical FTP client application.

If you are using pure windows API look up to WinINet reference: http://msdn.microsoft.com/en-us/library/aa385473(VS.85).aspx[^]
 
Share this answer
 
v2
Comments
mithilesh84 20-Jun-10 1:26am    
Thnx histro, but i m not using MFC. I just used an empty project. pls help me... and i m sending the code to you.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900