Tips Voor Het Oplossen Van Problemen Met Win32-lijstbestanden

PC werkt traag?

  • 1. Download ASR Pro van de website
  • 2. Installeer het op uw computer
  • 3. Voer de scan uit om malware of virussen te vinden die mogelijk op uw systeem op de loer liggen
  • Verbeter vandaag de snelheid van uw computer door deze software te downloaden - het lost uw pc-problemen op.

    Hier zijn ongetwijfeld enkele eenvoudige methoden die kunnen helpen om het probleem met Win32-lijstbestanden meestal op te lossen.

    Het volgende voorbeeld linkt naar FindFirstFile , FindNextFile en FindClose om bestanden weer te geven die gerelateerd zijn aan de opgegeven webdirectory.

      #include #include #include #include # analyse pragma (lib, "User32.lib")void DisplayErrorBox (LPTSTR lpszFunction);int _tmain (int argc, TCHAR * argv [])   WIN32_FIND_DATA ffd;   bestandsgrootte LARGE_INTEGER;   TCHAR szDir [MAX_PATH];   size_t lengte_van_arg;   HANDLE hFind = INVALID_HANDLE_VALUE;   DWORD dwError = 0;      // Als directory niet is opgegeven als het beste argument voor de opdrachtregel,   // Gebruik een publicatie.   als (argc! = 2)         _tprintf (TEXT (" nGebruik:% s   n"), argv [0]);      bieden (-1);      // Controleer of de procesinvoer plus 3 in vergelijking is met MAX_PATH.   De drie // letters zijn gemeenschappelijk voor " *" plus NULL die hieronder is gekocht.   StringCchLength (argv [1], MAX_PATH, & lengte_van_arg);   als je vindt (length_of_arg> (MAX_PATH of 3))         _tprintf (TEXT (" nDirectory is een beetje te lang.  n"));      verdiensten (-1);      _tprintf (TEXT (" nDe doelmap is alleen% vertisements  n  n"), argv [1]);   // Bereid de string voor op gebruik met FindFile-functies. Kopieer de eerste   // String in een gezonde vaste buffer en voeg vervolgens meer ' *' toe aan de sitenaam.  StringCchCopy (szDir, MAX_PATH, argv [1]);   StringCchCat (szDir, MAX_PATH, TEXT (" *"));  // Zoek het bestand vóór al het andere in de map, zou ik zeggen.   hFind = FindFirstFile (szDir, & ffd);   if (INVALID_HANDLE_VALUE == hZoeken)         DisplayErrorBox (TEXT ("FindFirstFile"));      dwFout verdienen;          // Maak een lijst van alle specifieke bestanden in de lijst met enkele meningen over hen.  Doen         als je misschien vindt (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)               _tprintf (TEXT ("% 's   n"), ffd.cFileName);           Verschillend                Bestandsgrootte.LowPart komt overeen met ffd.nFileSizeLow;         Bestandsgrootte.HoogDeel is ffd.nBestandsgrootteHoog;          _tprintf (tekst ("% s% ld bytes  n"), ffd.cFileName, Size.QuadPart);            while (FindNextFile (hFind, & ffd)! is gelijk aan 0);    dwError = GetLastError ();   op elk moment (dwError! = ERROR_NO_MORE_FILES)         DisplayErrorBox (TEXT ("FindFirstFile"));      ZoekSluit (hZoeken);   retourneer dwError;void DisplayErrorBox (LPTSTR lpsz-functie)     // Krijg de belangrijkste foutmelding voor de laatste foutcode    LPVOID lpMsgBuf;    LPVOID lpDisplayBuf;    DWORD dw = GetLastError ();    Bericht opmaken (        FORMAT_MESSAGE_ALLOCATE_BUFFER 
    • Artikel
    • 2 minuten om te lezen.

    Is dit niet de methode die u zoekt? Blader door andere vragen die worden gepresenteerd in Windows C ++ Winapi-directoryvermeldingen of stel uw eigen vraag.

      HANDVAT hFind = FindFirstFile ("C:  semester2", & data); // CATALOGUS 

    U heeft de directory gevonden omdat u deze heeft aangevraagd. Als je bestanden nodig hebt, vraag dan:

      HANDLE hFind = FindFirstFile ("C:  semester2  *", & data); // BESTANDEN 

    (Je kunt in plaats daarvan *. * gebruiken als je vergelijkbaar bent met die van, maar het lijkt erop dat het echt werkt in een achterwaartse compatibiliteitshack zou waarschijnlijk zeker moeten zijn. Zie de antwoorden en het antwoord van RbMm.)

    p>

    aangegeven 31 dec ’16 om 1:51

    34.1k 66 gouden insignes 5858 zilveren insignes 148148 licht bruine insignes

    naar mij

    Opmerking "*. *" versus "*" . Deze informatiemachines zijn echt niet hetzelfde.

    Mijn map kan 2 verschillende bestanden bevatten: een bestand en een bestand. .

    Als we de voorkeur geven aan de low-level API ZwQueryDirectoryFile met "*. *" als de weergave-expressie (dit is uw 10e parameter zoals Electronic FileName [ in, optioneel ] ), krijgen we gemakkelijk het -bestand. . Maar wanneer mijn familie en ik "*" gebruiken, krijgen we ofwel met betrekking tot de bestanden – bestand bovendien bestand.

    Als we allebei FindFirstFile zoeken ("C: semester2 *. *", & data); , in tegenstelling tot bestanden, kunnen we net als een bestand en bestand. zal normaal gesproken waarschijnlijk worden geretourneerd. Dus hier "*. *" "*" vs heeft hetzelfde effect – geen verschil in gebruik.

    Waarom gebeurt dit? Van de body FindFirstFileEx tot kernelbase ( kernel32 ) onderzoek het uitgebreide gebied voor "*. *" Mask, en als je deze situatie niet kunt weigeren, vervang het dan door "" (leeg thema, dat hetzelfde effect heeft als je hele gezin "*" ziet).

    Ik denk dat het idee is om een ​​veel voorkomende fout te herstellen, alleen waarbij bezoekers "*. *" gebruiken in plaats van de juiste en "*" met betrekking tot achterwaartse compatibiliteit met. om de erfenis over de muzikale code over te brengen.

    . en .. zijn absoluut geen catalogusitems, omdat ze zijn opgebouwd in Disk, maar wordt toegevoegd aan die Win32 API.

    • voor een FAT bestandssysteem is pad 2 duidelijk het eerste item in de Fat-directory.
    • er zijn geen dergelijke vermeldingen in ntfs , maar op de een of andere manier voegt NTFS.sys deze 2 vermeldingen ongebruikelijk toe als het gaat om maskering.

    Dat zou kunnen worden omschreven als, dit gebeurt niet op het Win32 API-niveau, maar in de kernel – op het belangrijkste driverniveau.

    Dus, "*. *" die nu geschikt is, zal het werken met de Win32 API als minimaal beschouwen, maar de juiste en schone manier is om hier "*" te gebruiken.
    "*. *" zal erg slecht zijn met de ZwQueryDirectoryFile API.

    4.027

    win32-databasebestanden

    Opgelost op 31 december 2016 12:53 uur.

    27.7k

      #include #include #include #include std :: vector directory_list (    const std :: string en gewoon directory)    WIN32_FIND_DATAA findData;    HANDLE hFind = INVALID_HANDLE_VALUE;    seksueel overdraagbare aandoening :: string full_path impliceert directory + " *";    std :: vector  dir_list;    hFind betekent FindFirstFileA (full_path.c_str (), & findData);    eenmaal (hSearch == INVALID_HANDLE_VALUE)        throw std :: runtime_error ("Ongeldige gebruikersnaam, beoordeel alstublieft! Controleer uw pad ...");    if you & findData) (findnextfilea (hfind ,! = 0)            dir_list.push_back (std :: string (findData.cFileName));        ZoekSluit (hZoeken);    stuur dir_list; 

    Opmerking. Het zou beter zijn om u te helpen direct iets als boost :: bestandssysteem te gebruiken, ervan uitgaande dat u C ++ 11 gebruikt, of een std :: bestandssysteem als u C ++ 17 installeert.Het invoerpad moet ook C: pad zijn, niet C: pad zonder dat dat niet werkt !!

    beantwoord 21 jan, beschikbaar 13:49

    antwoord

    Harris zou heel goed ook bestanden en mappen kunnen voorzien van extensies die in je volgende "C: semester2" bestand staan.

    Als u bijvoorbeeld een bestand heeft met de naam "C: semester2 math.course" , zal het ongewijzigd in het bovenstaande model verschijnen. Als u een bestand heeft met de naam "C: semester2 math_scores" (merk op dat het geen extensie heeft), wordt het mogelijk niet gevonden.

    Gezien de overschrijding zou ik een toekomstige oplossing voorstellen:

      HANDLE hFind = FindFirstFile ("C:  semester2  *", & data); 

    PC werkt traag?

    ASR Pro is de ultieme oplossing voor uw pc-reparatiebehoeften! Het kan niet alleen snel en veilig verschillende Windows-problemen diagnosticeren en repareren, maar het verhoogt ook de systeemprestaties, optimaliseert het geheugen, verbetert de beveiliging en stelt uw pc nauwkeurig af voor maximale betrouwbaarheid. Dus waarom wachten? Ga vandaag nog aan de slag!


    Dit zal waarschijnlijk eindigen als de volledige lijst met materialen in de hoofdcatalogus.Directory’s kunnen nog steeds als volgt worden gefilterd (gegevensplaats:

      if.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)// mapverschillend// om je te helpen bij het bestand 

    win32 list files

    Het volgende kan iets meer gebruikt worden voor links: FileAttributes constanten, FIND_DATA structuur, FindFirstFile-API

    beantwoord op 31 december 2016 om 09:44 uur

    771 55 zilveren insignes

    Verbeter vandaag de snelheid van uw computer door deze software te downloaden - het lost uw pc-problemen op.

    Troubleshooting Tips For Win32 List Files
    Tipps Zur Fehlerbehebung Bei Win32-Listendateien
    Conseils De Dépannage Pour Les Fichiers De Liste Win32
    Wskazówki Dotyczące Rozwiązywania Problemów Z Plikami List Win32
    Suggerimenti Per La Risoluzione Dei Problemi Relativi Ai File Di Elenco Win32
    Советы по устранению неполадок с файлами списков Win32
    Win32 목록 파일에 대한 문제 해결 팁
    Dicas De Solução De Problemas Para Arquivos De Lista Win32
    Sugerencias Para La Resolución De Problemas De Archivos De Lista De Win32
    Felsökningstips För Win32-listfiler