Aktuelles Verzeichnis ermitteln
-
Hi,
ich möchte dass der benutzer nur dateien aus dem Verzeichnis wählen kann in dem auch die Programmdatei liegt. Bisher habe ich die auswahl auf pdf-dateien beschränkt:char szFilters[] = "Adobe PDF-Dateien (*.pdf)|*.pdf||"; CFileDialog m_ldFile(TRUE, "Adobe PDF-Dateien", "*.pdf", OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this); if (m_ldFile.DoModal() == IDOK) { .... }
Aber wie beschränke ich das ganze jetzt noch auf ein bestimmtes verzeichnis? und eben auf das verzeichnis wo auch die exe datei liegt?
-
Den Aktuelen Pfad in dem die exe ausgeführt wird könntest du z.b. so ermitteln:
CString szDir = GetCommandLine(); // gibt dir verzeichniss+exe zurück szDir = szDB.Mid(1,szDB.Find("NameDerExe.exe",0);
Den Auswahldialog kannst du glaub ich nicht beschränken aber du kannst prüfen ob das Verzeichniss das ausgewählt wurde das richtige ist:
CFileDialog m_ldFile(TRUE, "Adobe PDF-Dateien", "*.pdf", OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this); if (m_ldFile.DoModal() == IDOK) { CString szPathName; szPathName = m_ldFile.GetPathName(); if (szDir.Compare(szPathName) != 0) return; }
so oder so ähnlich
-
Du kannst der folgende code
benutzen
CString pfad=""; char buffer[_MAX_PATH]; if( _getcwd( buffer, _MAX_PATH ) == NULL ) perror( "_getcwd error" ); else printf( "%s\n", buffer ); pfad = buffer;
und die include sätzue auch einfügen
#include <afxwin.h> #include <afxinet.h> #include <stdio.h> #include <direct.h>
-
In den FAQ steht dazu auch einiges...