Dateien suchen mit bestimmter Endung
-
Wie kann ich mein Programm Datein auf der C:\ suchen lassen mit z.B einer endung von txt?
-
Sowas ist Systemspezifisch. Ich verschieb dich mal nach WinAPI. Aber schau mal dort in die FAQ. Ich bin mir sicher, dass du da was findest
-
Dieser Thread wurde von Moderator/in TactX aus dem Forum ANSI C in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
findfirstfile findnextfile
-
Bei dreistelligen Endungen sei noch angemerkt, dass Windows dies als ".txt" betrachtet... Also wenn Du nur "*.txt" finden willst, dann musst Du dies "von Hand" machen und Deine Ergebnisse nochmals vergleichen!
-
So erstma danke für die schnellen antworten des Problem ich check des net ganz so was ihr meint könntet ihr mir vll ein Beispiel zeigen?
-
Hallo,
diese Frage ist eher an die Fortgeschrittenen gerichtet:
Ich selber kenne keine API - Funktion, die die Dateien explizit nach dem Dateiende finden kann ... Aber wie wär's, wenn man allgemein alle Daten durchsucht, deren Dateinamen in einem String speichert, und jeweils die letzten drei Zeichen (ggf. die letzten Zeichen nach einem abschließendem Punkt) als Substring extrahiert, und prüft ob es sich um eine *.txt - Endung handelt ? Wenn dies der Fall sein sollte, muss der gefundene Dateiname z.B in einem neuen String - Array abgelegt werden, dessen Inhalt letztendlich als Suchresultat angezeigt werden kann ...
Ist es eine gute Idee, falls es keine Funktion dafür gibt) ?
-
Also des is ne gute idee aber ob ich des schon hinbekomme bezweifele ich ich bin noch anfänger wenn es um C geht
-
http://msdn2.microsoft.com/en-us/library/aa365200.aspx
[edit]
hab ich doch gewusst das in der faq was steht
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39396.html
-
mikey schrieb:
Ist es eine gute Idee, falls es keine Funktion dafür gibt) ?
msdn schrieb:
lpFileName
[in] A pointer to a null-terminated string that specifies a valid directory or path, and file name that can contain wildcard characters, for example, an asterisk (*) or a question mark (?).
If the string ends with a wildcard, period (.), or directory name, the user must have access to the root and all subdirectories on the path.müsste also gehen
@mikey
zum ansatz: ich selber benutze einen cpp/boost ansatz der in etwa deiner idee entspricht. somit finde ich ihn gut
-
Freut mich !
Sonst wäre mir auch nichts besonderes mehr eingefallen, nur das mit dem Substring ...
-
Hatte da mal was treffendes zu gepostet, vllt hilft das ja noch ?!
:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-168044-and-highlight-is-.html
-
ich hab das immser so gemacht:
// in szFileName ist halt der Dateiname... kriegt man durch findfirstfile(), findnextfile() if(!strcmpi(strrchr(szFileName, '.') + 1, "txt")) { // blub es ist eine Textdatei }
bei unicode natürlich entsprechend anpassen (z.b. 1 durch sizeof(TCHAR) ersetzen oder sowas)...
mfg
-
Black Shadow schrieb:
bei unicode natürlich entsprechend anpassen (z.b. 1 durch sizeof(TCHAR) ersetzen oder sowas)...
Warum machste es nicht gleich (alles!) Charset-Independent ?
Also...:
strcmpi -> lstrcmpi strrchr -> lstrrchr '.' -> TEXT('.') 1 -> sizeof(TCHAR) "txt" -> TEXT("txt")