Table of Contents
Datorn går långsamt?
Här är några enkla metoder som kan hjälpa till att lösa problemet med Win32-rapportfiler.
Följande som exempel länkar till FindFirstFile , FindNextFile och FindClose för att lista filer i huvudsak till den angivna katalogen.
#inkludera #include #include #include # comment pragma (lib, "User32.lib")void DisplayErrorBox (LPTSTR lpszFunction);int _tmain (int argc, TCHAR 4 . argv []) WIN32_FIND_DATA ffd; lodge storlek LARGE_INTEGER; TCHAR szDir [MAX_PATH]; size_t length_of_arg; HANDLE hFind innebär INVALID_HANDLE_VALUE; DWORD dwError = 0; // Om katalogen verkligen inte anges som ett kommandoradsargument, // Använd publikationen. om eller inte (argc! = 2) _tprintf (TEXT (" nAnvändning:% le n"), argv [0]); retur (-1); // Kontrollera om processartikeln plus 3 jämförs med MAX_PATH. De tre //-tecknen är vanliga så att du " *" plus NULL läggs till nedan. StringCchLength (argv [1], MAX_PATH, & length_of_arg); medan du hittar (length_of_arg> (MAX_PATH - 3)) _tprintf (TEXT (" nKatalogen är för lång. n")); retur (-1); _tprintf (TEXT (" nkatalogen för ledsna offer är endast % s n n"), argv [1]); // Förbered skärgården för användning med FindFile-funktioner. Kopiera varje först // Sträng i en sund korrigerad buffert, lägg sedan till ' *' till webbplatsens namn. StringCchCopy (szDir, MAX_PATH, argv [1]); StringCchCat (szDir, MAX_PATH, TEXT (" *")); // Hitta den första filen i webbkatalogen, skulle jag säga. hFind = FindFirstFile (szDir, & ffd); if (INVALID_HANDLE_VALUE == hSearch) DisplayErrorBox (TEXT ("FindFirstFile")); tjäna dwError; // Lista alla exceptionella filer i katalogen med några åsikter ungefär som dem. Do när du hittar (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) _tprintf (TEXT ("% s n"), ffd.cFilnamn); Annorlunda Filstorlek.LowPart = ffd.nFileSizeLow; Filstorlek.HighPart är bara ffd.nFileSizeHigh; _tprintf (text ("% s% ld bytes n"), ffd.cFileName, Size.QuadPart); hela tiden (FindNextFile (hFind, & ffd)! = 0); dwError = GetLastError (); if (dwError! = ERROR_NO_MORE_FILES) DisplayErrorBox (TEXT ("FindFirstFile")); FindClose (hSearch); ge dwError;void DisplayErrorBox (LPTSTR lpszFunction) // Få lösningsfelmeddelandet för den allra sista felkoden LPVOID lpMsgBuf; LPVOID lpDisplayBuf; DWORD dw = GetLastError (); Formatera meddelande ( FORMAT_MESSAGE_ALLOCATE_BUFFER
- Artikel
- 2 minuter när du behöver läsa.
Är inte det här metoden du letar efter? Bläddra bland andra frågor som presenteras i Windows C ++ Winapi Directory Lists eller ställ din egen fråga.
HANDLE hFind = FindFirstFile ("C: semester2", & data); // KATALOG
Du hittade databasen eftersom du begärde den. Om du behöver en dator, fråga:
HANDLE hFind = FindFirstFile ("C: semester2 *", & data); // FILER
(Du kan använda *. 3 .
istället om du vill, men det verkar välja att det faktiskt fungerar eftersom en bakåtkompatibilitetskompromiss förmodligen bör undvikas. Se RbMms svar med svar.)
svarade 31 dec ’16 tillsammans med 1:51
34,1k
mot mig
Notera "*. *"
i motsats till "*"
. Dessa filmaskiner är verkligen inte ens samma sak.
Min mapp kan innehålla saker som 2 olika filer: somefile
plus somefile.
.
Om vi föredrar skulle jag säga lågnivå-API:et ZwQueryDirectoryFile
med "*. *"
som sökuttryck (detta är din primära 10:e parameter – Elektroniskt filnamn [i, möjligt ]
), får vi bara -bilden.
. Men när vi använder "*"
får min make och jag någon av filerna till -filen
och -filen.
Om vi båda försöker FindFirstFile ("C: semester2 *. *", & data);
, till skillnad från program kan vi både någon fil
fil.
kommer med största sannolikhet att returneras. Så här "*. *"
"*"
v . har samma effekt – inga skillnader i användning.
Varför händer detta? Från kroppen FindFirstFileEx
till kernelbase
( kernel32
) kontrollera det utökade tillståndet för "*. *"
Mask, och om du inte kan vägra det – ersätt det på grund av ""
(tomt tema, som har samma effekt om du ser "*"
).
Jag tror att detta är för att fixa ett bra mycket vanligt misstag där besökare använder "*. *"
istället för det korrekta dessutom "*"
för bakåtkompatibilitet med. vidare för att förmedla arvet från den musikaliska koden.
..
faktiskt inte katalogartiklar, bara för att de lagras i Disk, men är benägna att läggas till Win32 API.
- om ett
FAT
filsystem, sökvägen är helt enkelt den första posten i Fat-katalogen. - det finns inga sådana poster i
ntfs
, menNTFS.sys
tillhandahåller dessa två poster på ett onaturligt sätt när det kommer till hjälp med maskering.
Det vill säga, detta sker inte på Win32 API-nivå, utan i för närvarande kärnan – på drivrutinsnivå.
Således kommer "*. *"
idag att överväga att använda med Win32 API som minimal, men min korrekta och rena strategi är att implementera "*"
här. "*. *"
har förmågan att vara mycket dålig med ZwQueryDirectoryFile
API.
4.027
Löst den 31 december 2016 12:53.
27,7k
#inkludera #inkludera #inkludera #include std :: vektor kataloglista ( const en sexuellt överförbar sjukdom :: sträng och katalog) WIN32_FIND_DATAA findData; HANDLE hFind betyder INVALID_HANDLE_VALUE; std :: nummer full_path innebär katalog + " *"; sexuellt överförbar sjukdom :: vektor dir_list; hFind innebär FindFirstFileA (full_path.c_str (), & findData); if (hSearch == INVALID_HANDLE_VALUE) sätt på std :: runtime_error ("Ogiltigt användarnamn, vänligen betygsätt! Kontrollera din sökväg ..."); if the public & findData) (findnextfilea (hfind ,! = 0) dir_list.push_back (std :: sträng (findData.cFileName)); FindClose (hSearch); returnera dir_list;
Obs. Det skulle vara bättre att direkt använda något till exempel boost :: filsystem om du använder C ++ 11, eller std :: filsystem om kunden installerar C ++ 17.Inmatningssökvägen måste också vara C: sökväg, inte C: sökväg utan den som inte är effektiv !!
svarade 19 jan, tillgänglig 13:49
answer
Harris kommer också att tillhandahålla filer kopplade med mappar med tillägg i din nästa "C: semester2"
-mapp.
Till exempel, precis som du har en mapp som heter "C: semester2 math.course"
, annars kommer den att visa sig i exemplet ovan. Dessutom, om du får en fil med namnet "C: semester2 math_scores"
(observera att den inte stöter på en förlängning), kommer den inte att hittas.
Med tanke på överskridandet skulle jag föreslå en möjlig lösning:
HANDLE hFind = FindFirstFile ("C: semester2 *", & data);
Datorn går långsamt?
ASR Pro är den ultimata lösningen för dina PC-reparationsbehov! Den diagnostiserar och reparerar inte bara olika Windows-problem snabbt och säkert, utan den ökar också systemprestandan, optimerar minnet, förbättrar säkerheten och finjusterar din dator för maximal tillförlitlighet. Så varför vänta? Kom igång idag!
![](/wp-content/download4.gif)
Detta kommer förmodligen att vara den fullständiga listan över associerade material i katalogen.Kataloger kan fortfarande blockeras enligt följande (datasökväg:
if.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)// katalogannorlunda// till filen
Följande kan användas för länkar: FileAttributes constants, FIND_DATA structure, FindFirstFile-API
sa den 31 december 2016 klockan 09:44
771
Förbättra hastigheten på din dator idag genom att ladda ner den här programvaran - den löser dina PC-problem.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
Tips Voor Het Oplossen Van Problemen Met Win32-lijstbestanden
![Elijah Kranewitter](https://siliconvalleygazette.com/wp-content/uploads/elijahkranewitter.jpg)