Click here to Skip to main content
15,884,973 members

Code for FTP upload

mithilesh84 asked:

Open original thread
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.
Tags: C++, Windows, Networking

Plain Text
ASM
ASP
ASP.NET
BASIC
BAT
C#
C++
COBOL
CoffeeScript
CSS
Dart
dbase
F#
FORTRAN
HTML
Java
Javascript
Kotlin
Lua
MIDL
MSIL
ObjectiveC
Pascal
PERL
PHP
PowerShell
Python
Razor
Ruby
Scala
Shell
SLN
SQL
Swift
T4
Terminal
TypeScript
VB
VBScript
XML
YAML

Preview



When answering a question please:
  1. Read the question carefully.
  2. Understand that English isn't everyone's first language so be lenient of bad spelling and grammar.
  3. If a question is poorly phrased then either ask for clarification, ignore it, or edit the question and fix the problem. Insults are not welcome.
  4. Don't tell someone to read the manual. Chances are they have and don't get it. Provide an answer or move on to the next question.
Let's work to help developers, not make them feel stupid.
Please note that all posts will be submitted under the http://www.codeproject.com/info/cpol10.aspx.



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