Archiv verlassen und diese Seite im Standarddesign anzeigen : Suchmethode
Lord Nikon
2003-08-30, 14:15:01
Hi ,
ich wollte wissen, ob es einen Winapi Aufruf gibt , der wenn ich z.B *.mp3 übergebe mir alle Pfadinformation zurückliefert , die sich auf meiner Festplatte befinden.
ScottManDeath
2003-08-30, 14:42:48
#include <windows.h>
#include <stdio.h>
WIN32_FIND_DATA FileData;
HANDLE hSearch;
DWORD dwAttrs;
char szDirPath[] = "c:\\TEXTRO\\";
char szNewPath[MAX_PATH];
char szHome[MAX_PATH];
BOOL fFinished = FALSE;
// Create a new directory.
if (!CreateDirectory(szDirPath, NULL))
{
printf("Couldn't create new directory.");
return;
}
// Start searching for .TXT files in the current directory.
hSearch = FindFirstFile("*.txt", &FileData);
if (hSearch == INVALID_HANDLE_VALUE)
{
printf("No .TXT files found.");
return;
}
// Copy each .TXT file to the new directory
// and change it to read only, if not already.
while (!fFinished)
{
lstrcpy(szNewPath, szDirPath);
lstrcat(szNewPath, FileData.cFileName);
if (CopyFile(FileData.cFileName, szNewPath, FALSE))
{
dwAttrs = GetFileAttributes(FileData.cFileName);
if (!(dwAttrs & FILE_ATTRIBUTE_READONLY))
{
SetFileAttributes(szNewPath,
dwAttrs | FILE_ATTRIBUTE_READONLY);
}
}
else
{
printf("Couldn't copy file.");
return;
}
if (!FindNextFile(hSearch, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
{
MessageBox(hwnd, "No more .TXT files.",
"Search completed.", MB_OK);
fFinished = TRUE;
}
else
{
printf("Couldn't find next file.");
return;
}
}
}
// Close the search handle.
FindClose(hSearch);
Boah, wenn man sowas sieht lernt man Python erst richtig schätzen ;)
Matti
2003-08-30, 15:59:19
...wieso? Wie würde das in Python aussehen?
Lord Nikon
2003-08-30, 16:32:33
@Matti
thx für die Antwort
Matti
2003-08-30, 17:00:48
danke, daß du dich bei mir bedankst, aber die 1. Antwort war nicht von mir ;D
Lord Nikon
2003-08-30, 17:36:29
upps leicht verwechselt *G*
Ich meinte natürlich ScottManDeath.
Original geschrieben von Matti
...wieso? Wie würde das in Python aussehen?
So:
import os
def findfiles(ext, searchdir):
found = []
for path, dirs, files in os.walk(searchdir):
for file in files:
if os.path.splitext(file)[1].lower() == ext.lower():
found.append(os.path.join(path, file))
return found
Original geschrieben von Xmas
So:
/*.....*/
Das ist alles? :o
Ja, wobei das aber nur die Antwort auf Lord Nikons Frage war. ScottManDeath hat ja ein Codebeispiel gebracht, dass alle txt-Dateien kopiert und auch die Attribute überprüft. Dennoch ist der Python-Code übersichtlicher.
Lord Nikon
2003-08-31, 18:41:18
wie krieg ich das hin, dass die Suche rekursiv ist und somit auch die untergeordneten Ordner durchsucht ?
Ach ja, fast dasselbe Problem hatten wir schonmal ;)
http://www.forum-3dcenter.org/vbulletin/showthread.php?s=&threadid=50218
Lord Nikon
2003-08-31, 22:30:15
thx.
Da die Suchfunktion leider ja deaktiviert ist , wusste ich nicht das es dazu schon einen Thread dazu gab.
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.