Programm für die abfrage ob Ordnerstruckturen vorhanden sind
-
Ich will zB schauen ob der VideoLanClient installiert ist, standartmäßig ist der ja in C:\Programme\VLC\
Ich lerne das gerade und möchte das halt als übung machen. Nur leider ist es weder in meinem Buch zu finden, noch bei google

Von daher meine Frage, wie das auszusehen hätte. WinAPI bin ich glaube ich noch lange nicht soweit, um dieses zu nutzen.
Ich verstehe leider nicht ganz, wie ich das dann einbinden kann.
Ich möchte doch nur son kleines Dos Proggie haben, was mir ausgibt, ja Ordner ist vorhanden, oder nein Ordner ist nicht vorhanden. Ob es dann auch dort installiert ist, juckt mich erstmal nicht 100%ig. Ich möchte das nur mal gemacht haben..
-
Ich kann mich nur wiederholen, mit Standard C++ Mitteln ist sowas unmöglich und auf Windows ohne WinAPI ist es auch unmöglich.
Du musst also entweder mit der WinAPI zusammenarbeiten oder mit einer Bibliothek, welche die WinAPI einsetzt. Da gibt es kein drum herum. Wenn du dich dafür noch nicht bereit siehst, dann solltest du derzeit lieber probieren etwas anderes zu machen.
Grüssli
-
Ok, und wie würde sowas dann im zusammenspeil mit der WinAPI aussehen?
-
LoRdNyCoN schrieb:
Ok, und wie würde sowas dann im zusammenspeil mit der WinAPI aussehen?
Wie Dravere schon gesagt hat, kannst du das mit Boost::filesystem machen.
-
Könntest du mir mal ein Codebeispiel dafür posten?
Wäre wirklich supi, da verstehe ich das besser wenn ichs auch sehe...
-
LoRdNyCoN schrieb:
Könntest du mir mal ein Codebeispiel dafür posten?
Wäre wirklich supi, da verstehe ich das besser wenn ichs auch sehe...
Du musst boost sowieso zuerst mal laden und installieren. Dann schadet es nicht, wenn du dich gleich mal mit der Page vertraut machst.
http://www.boost.org/doc/libs/1_36_0/libs/filesystem/doc/index.htm#Introduction
-
#include <windows.h> #include <iostream> int main() { WIN32_FIND_DATA findData; ::ZeroMemory(&findData, sizeof(WIN32_FIND_DATA)); HANDLE searchHandle = ::FindFirstFile(L"C:\\Programme\\VCL", &findData); if(INVALID_HANDLE_VALUE != searchHandle && FILE_ATTRIBUTE_DIRECTORY == findData.dwFileAttributes) { std::cout << "Directory is available!" << std::endl; } else { std::cout << "Directory is not available!" << std::endl; } FindClose(searchHandle); std::cin.get(); return 0; }Hast Glück, dass ich grad an einem eigenen Problem nicht weiterkomme. Sonst schreibt man hier meistens nicht einfach so Code rein. Das sollte schliesslich deine Aufgabe sein. Man lernt nur, in dem man es selber macht

Ich bin im übrigen nicht mehr so geübt mit WinAPI, ich hoffe aber es stimmt. Hier noch eine Referenz zur FindFirstFile Funktion:
http://msdn.microsoft.com/en-us/library/aa364418(VS.85).aspxGrüssli
-
Vielen Dank dafür, so versteht man auch die logik die dahinter steckt...
Ich bin eigentlich schon immer darauf fixiert, das selber zu raffen, aber geht halt nicht immer ohne beispiel.
Werde ich nacher gleich testen, und berichten
-
Nun sagt mir mein Compiler folgendes...
cannot convert `const wchar_t*' to `const CHAR*' for argument `1' to `void* FindFirstFileA(const CHAR*, _WIN32_FIND_DATAA*)'
Was soll mir das sagen?
-
Eine andere Möglichkeit, die wohl eleganter wäre fragt die entsprechende Systemvariable ab. Das Beispiel unten fragt die PATH-Variable ab.
/* getenv example: getting path */ #include <stdio.h> #include <stdlib.h> int main() { char * pPath; pPath = getenv("PATH"); if (pPath!=NULL) printf ("The current path is: %s",pPath); return 0; }
-
Hallo,
LoRdNyCoN schrieb:
Nun sagt mir mein Compiler folgendes...
cannot convert `const wchar_t*' to `const CHAR*' for argument `1' to `void* FindFirstFileA(const CHAR*, _WIN32_FIND_DATAA*)'
Was soll mir das sagen?
Dass du entweder in den Projekteinstellungen den Zeichensatz von UNICODE auf Multi-Byte oder "nicht gesetzt" umschalten oder das L vor "C:\\Programme\\VCL" entfernen musst.
MfG,
Probe-Nutzer