So che le funzioni GetCurrentDirectory() e SetCurrentDirectory() esistono nel framework MFC, ma non ho un oggetto CFtpConnection nella mia applicazione. Ho una semplice classe derivata da CWinApp, e vorrei recuperare la sua directory di lavoro all'avvio del programma. Qual è il metodo più semplice per raggiungere questo obiettivo? Grazie in anticipo per i consigli.MFC: funzione GetCurrentDirectory
risposta
GetCurrentDirectory è una semplice funzione API Win32, quindi basta chiamare in questo modo:
TCHAR currentDir[MAX_PATH];
GetCurrentDirectory(MAX_PATH, currentDir);
C'è lo stesso codice, ma utilizzando la classe CString (non dimenticate di chiamare 'ReleaseBuffer()' 'per il vostro oggetto CString'): ' CString CurDir; GetCurrentDirectory (MAX_PATH, curDir.GetBufferSetLength (MAX_PATH)); curDir.ReleaseBuffer(); ' – Mar
Presumo che si sta tentando di ottenere la directory in cui il file exe si trova invece che nella directory corrente. Questa directory può essere diversa dalla directory corrente.
TCHAR buff[MAX_PATH];
memset(buff, 0, MAX_PATH);
::GetModuleFileName(NULL,buff,sizeof(buff));
CString strFolder = buff;
strFolder = strFolder.Left(strFolder.ReverseFind(_T('\\'))+1);
Il percorso del exe (o dll) non è necessariamente la directory corrente. Non appena questo non è più il caso, si incontrano problemi se si utilizza questa soluzione. – Alex
Di cosa stai parlando? questa soluzione è solo per evitare il caso in cui la directory corrente è diversa dalla directory in cui si trova il file exe. La domanda è cambiata dall'originale richiesto. – Gisway
Vedi http://msdn.microsoft.com/en-us/library/aa364934(VS.85).aspx ... niente a che fare con se o non si dispone di un oggetto CFtpConnection. – ChrisW
Dupe: http://stackoverflow.com/questions/875249/how-to-get-current-directory – ChrisW
In circostanze normali la cartella di lavoro sta per essere trovato nella cartella dei dati dell'applicazione utente e c'è una speciale API per ottenere posizioni di cartelle speciali. Quindi, devi decidere come stai gestendo la cartella di lavoro. –