Il tuo codice contiene alcuni errori, tra cui i seguenti:
- richiami un metodo "append" inesistente - argv non è fatta di string, ma di semplici puntatori a const char;
- a tale metodo inesistente tra l'altro passi una stringa che usa una sequenza di escape non corretta ("\*.txt"); probabilmente intendevi "\\*.txt";
- inoltre per costruire il percorso di ricerca supponi che il percorso che l'utente ha specificato sia valido e non termini con un backslash (\);
- costruisci inutilmente un oggetto string (basta passare FindFileData.cFileName a funzioni che si aspettano una stringa);
- richiami un costruttore della classe ifstream che non esiste (devi crearla e poi richiamarne il metodo open)
- tra l'altro ci passi direttamente un oggetto string (se un costruttore del genere esistesse si aspetterebbe un const char *, per ottenere il quale dovresti richiamare nomeFile.c_str());
- non termini la ricerca (non richiami FindClose).
Ecco del codice corretto:
codice:
#define VC_EXTRALEAN //Servono solo le API principali
#include <iostream>
#include <fstream>
#include <windows.h>
#include <shlwapi.h>
//Nota: perché questo codice funzioni va linkato anche con shlwapi.lib; in VC++ si può ottenere tale effetto anche con un #pragma non standard
#ifdef _MSC_VER
#pragma comment(lib,"shlwapi.lib")
#endif
//...
using namespace std;
int main(int argc, char * argv[])
{
//Ricerca dei file txt nella cartella indicata
WIN32_FIND_DATA fd;
char searchString[MAX_PATH];
if (!PathIsDirectory(argv[1]))
{
cerr<<"Il percorso indicato non esiste.\n";
return 1;
}
//Costruisce la stringa di ricerca
if (PathCombine(searchString,argv[1],"*.csv")==0)
{
cerr<<"Impossibile creare la stringa di ricerca.\n";
return 2;
}
clog<<"Ricerca dei file txt in \""<<argv[1]<<"\"...\n";
//Ricerca il primo file che corrisponde ai criteri
HANDLE hFind=FindFirstFile(searchString,&fd);
if (hFind==INVALID_HANDLE_VALUE)
{
cout<<"Impossibile trovare file txt nella cartella specificata.\n";
return 3;
}
do
{
ifstream is;
is.open(fd.cFileName, ios::out); //eventualmente cambia ios::out in quello che deve essere
//... fa quello che deve fare ...
is.close();
} while(FindNextFile(hFind,&fd)); //Continua a cercare fino a quando non ci sono più files
//Termina la ricerca
FindClose(hFind);
}
---EDIT---
Maledizione, arrivo tardi.