Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo!

Ich habe folgendes Problem:

Ich möchte aus einem Verzeichnis und seinen Unterverzeichnissen den Filename von allen .mp3 Dateien in einem Char[] abspeichern.

(also ich brauche nur ein Char[] und in dem kann der alte Filename immer wieder überschrieben werden.)

Ich arbeite mit Windows XP und denke, dass ich die Funktionen FindFirstFile und FindNextFile für dies notwendig ist.

Ich habe versucht laut MSDN und anderen Suchen in google dies zu verwirklichen, jedoch bekomm ich nichts hin.

Ich bekomme die Funktionen einfach nicht zum laufen...

Ich hoffe ihr könnt mir helfen

lg Dom

naja...

wenn ich das richtig verstehe ist der Pfad der gefundenen Datei in einer WIN32_FIND_DATA-Struktur gespeichert.

Ich kann aber leider keinen Thread finden indem angegeben wird wie ich daraus den Pfad auslese und dann in ein Variable vom Typ Char[] einlese.

ps.: blöde Frage: welche Datei muss ich headern dass er diese struct erkennt?

lg

ps.: blöde Frage: welche Datei muss ich headern dass er diese struct erkennt?

lg

MSDN oeffnen, WIN32_FIND_DATA eingeben, runterscrollen zu Requirements, lesen bei Header

Goos

danke

hm komischerweise gibts Requirements bei meiner MSDN nicht...

habs aber bei der Online-MSDN gefunden.

Also nochmal das Problem:

WIN32_FIND_DATA w32fd;

char path[93];

HANDLE hFind = FindFirstFile("C:\\*.mp3",&w32fd);

if ( hFind != INVALID_HANDLE_VALUE)

{

do

{

// hier möchte ich den gesamten Pfad der gefundenen Datei

// in die Variable path speichern.

}

while (FindNextFile(hFind,&w32fd));

}

FindClose(hFind);

achja: was muss ich ändern dass auch die Unterverzeichnisse durchsucht werden?

// hier möchte ich den gesamten Pfad der gefundenen Datei

// in die Variable path speichern.

strncpy(path, w32fd.cFileName, 92);

Du solltest allerdings das letzte Element des Arrays mit '\0' initialisieren, für den Fall, dass 92 Zeichen nicht ausreichen (was sehr leicht passieren kann).

achja: was muss ich ändern dass auch die Unterverzeichnisse durchsucht werden?
Das geht nicht automatisch. Du musst die Unterverzeichnisse suchen (in WIN32_FIND_DATA::dwFileAttributes ist das Flag FILE_ATTRIBUTE_DIRECTORY gesetzt) und dann in den gefundenen Verzeichnissen nochmal suchen.

ich weiß zwar, wie ich überprüfen kann ob das Flag gesetzt ist oder nicht, aber woher bekomm ich dann die Namen der Unterverzeichnisse her?

irgendwie check ich das noch nicht...

ich weiß zwar, wie ich überprüfen kann ob das Flag gesetzt ist oder nicht,

if((w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY)

(Edit: sorry, hatte da ein "nicht" gelesen, wo keines war :))

aber woher bekomm ich dann die Namen der Unterverzeichnisse her?
Aus cFileName, wie die Dateinamen auch. Du musst nur aufpassen, dass du nicht bei . und .. weitersuchst.
  • 2 Wochen später...
Du musst nur aufpassen, dass du nicht bei . und .. weitersuchst.

hm und wie mach ich das? so funktionierts auf jeden Fall nicht: :confused:

if(w32fd.cFileName != "." && w32fd.cFileName != "..")

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.