Click here to Skip to main content
15,215,728 members
Rate this:
Please Sign up or sign in to vote.
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

Rate this:
Please Sign up or sign in to vote.

Solution 1

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[^]
   
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, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100