當前位置:首頁 » 文件管理 » win32查找文件夾

win32查找文件夾

發布時間: 2022-09-27 13:24:25

㈠ 如何用C代碼遍歷整個windows文件夾查找某個特定文件

#include "stdafx.h"
#include <windows.h>

BOOL IsRoot(LPCTSTR lpszPath)
{
TCHAR szRoot[4];
wsprintf(szRoot, "%c:\\", lpszPath[0]);
return (lstrcmp(szRoot, lpszPath) == 0);
}

void FindInAll(::LPCTSTR lpszPath)
{TCHAR szFind[MAX_PATH];
lstrcpy(szFind, lpszPath);
if (!IsRoot(szFind))
lstrcat(szFind, "\\");
lstrcat(szFind, "*.*"); // 找所有文件
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(szFind, &wfd);
if (hFind == INVALID_HANDLE_VALUE) // 如果沒有找到或查找失敗
return;

do
{
if (wfd.cFileName[0] == '.')
continue; // 過濾這兩個目錄
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
TCHAR szFile[MAX_PATH];
if (IsRoot(lpszPath))
wsprintf(szFile, "%s%s", lpszPath, wfd.cFileName);
else
wsprintf(szFile, "%s\\%s", lpszPath, wfd.cFileName);
FindInAll(szFile); // 如果找到的是目錄,則進入此目錄進行遞歸
}
else
{
TCHAR szFile[MAX_PATH];
if (IsRoot(lpszPath))
wsprintf(szFile, "%s%s", lpszPath, wfd.cFileName);
else
wsprintf(szFile, "%s\\%s", lpszPath, wfd.cFileName);
printf("%s\n",szFile);
// 對文件進行操作
}
} while (FindNextFile(hFind, &wfd));
FindClose(hFind); // 關閉查找句柄

}
int main(int argc, char* argv[])
{
FindInAll("e:\\result");
return 0;
}
//結合網上資料寫出的,作者--楊克群^_^

㈡ Win32 API 中獲取文件夾下文件列表的函數是哪個呀知道的朋友告訴下.

沒有文件列表,只能枚舉所有文件,再根據文件的屬性判斷是文件或者文件夾。
下面是MSDN上的完整例子
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <strsafe.h>
#pragma comment(lib, "User32.lib")

void DisplayErrorBox(LPTSTR lpszFunction);

int _tmain(int argc, TCHAR *argv[])
{
WIN32_FIND_DATA ffd;
LARGE_INTEGER filesize;
TCHAR szDir[MAX_PATH];
size_t length_of_arg;
HANDLE hFind = INVALID_HANDLE_VALUE;
DWORD dwError=0;

// If the directory is not specified as a command-line argument,
// print usage.

if(argc != 2)
{
_tprintf(TEXT("\nUsage: %s <directory name>\n"), argv[0]);
return (-1);
}

// Check that the input path plus 3 is not longer than MAX_PATH.
// Three characters are for the "\*" plus NULL appended below.

StringCchLength(argv[1], MAX_PATH, &length_of_arg);

if (length_of_arg > (MAX_PATH - 3))
{
_tprintf(TEXT("\nDirectory path is too long.\n"));
return (-1);
}

_tprintf(TEXT("\nTarget directory is %s\n\n"), argv[1]);

// Prepare string for use with FindFile functions. First, the
// string to a buffer, then append '\*' to the directory name.

StringCchCopy(szDir, MAX_PATH, argv[1]);
StringCchCat(szDir, MAX_PATH, TEXT("\\*"));

// Find the first file in the directory.

hFind = FindFirstFile(szDir, &ffd);

if (INVALID_HANDLE_VALUE == hFind)
{
DisplayErrorBox(TEXT("FindFirstFile"));
return dwError;
}

// List all the files in the directory with some info about them.

do
{
if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
_tprintf(TEXT(" %s <DIR>\n"), ffd.cFileName);
}
else
{
filesize.LowPart = ffd.nFileSizeLow;
filesize.HighPart = ffd.nFileSizeHigh;
_tprintf(TEXT(" %s %ld bytes\n"), ffd.cFileName, filesize.QuadPart);
}
}
while (FindNextFile(hFind, &ffd) != 0);

dwError = GetLastError();
if (dwError != ERROR_NO_MORE_FILES)
{
DisplayErrorBox(TEXT("FindFirstFile"));
}

FindClose(hFind);
return dwError;
}

void DisplayErrorBox(LPTSTR lpszFunction)
{
// Retrieve the system error message for the last-error code

LPVOID lpMsgBuf;
LPVOID lpDisplayBuf;
DWORD dw = GetLastError();

FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );

// Display the error message and clean up

lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT,
(lstrlen((LPCTSTR)lpMsgBuf)+lstrlen((LPCTSTR)lpszFunction)+40)*sizeof(TCHAR));
StringCchPrintf((LPTSTR)lpDisplayBuf,
LocalSize(lpDisplayBuf) / sizeof(TCHAR),
TEXT("%s failed with error %d: %s"),
lpszFunction, dw, lpMsgBuf);
MessageBox(NULL, (LPCTSTR)lpDisplayBuf, TEXT("Error"), MB_OK);

LocalFree(lpMsgBuf);
LocalFree(lpDisplayBuf);
}

㈢ AdWare.Win32.Dodolook.hb 在哪個文件夾里呀

在搜索里輸入AdWare.Win32.Dodolook.hb點擊搜索。在右面的空白里就可以看見這個文件了。找不到可能是被隱藏了。搜索到之後直接在搜索的地方解壓就可以了。不用再找那個文件。

㈣ win32是什麼文件

"不是有效的win32應用程序"解決方案
1. 解決方法:右鍵打開其中一受感染的盤符,在工具欄---文件夾選項--查看下, 選顯示所有文件和文件夾,同時去除隱藏受保護的系統文件前的勾,你會發現在你的盤符下多了一antorun.inf 的文件,打開我們可以看到如下的內容: [AUTORUN] open=Iexplorers.exe 這句話的意思就是當你雙擊盤符時自動打開寫入注冊表中的病毒程序文件, 即使病毒被殺死,但是注冊表的信息依然存在,這就是無法打開盤符的原因, 知道了原因,那麼我們就來刪除病毒在注冊表中的殘留信息,開始---運行中輸入regedit打開注冊表編輯程序,ctrl+f打開查找命令,輸入Iexplorers.exe, 點查找,接下來會在注冊表中找到此鍵值.一般在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer \MountPoints\下.

2. 對於分區不能雙擊打開者開始》》運行 輸入regedit 找到[HKEY_CLASSES_ROOT\Drive\shell]將shell下的全部刪除 然後關閉注冊表 按鍵盤F5刷新 雙擊分區再看對於文件夾不能雙擊打開者開始》》運行 輸入regedit 找到[HKEY_CLASSES_ROOT\Directory\shell]將shell下的全部 刪除 然後關閉注冊表 按鍵盤F5刷新 雙擊分區再看 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer \MountPoints\F\Shell\command\下發現此鍵值,把shell子鍵刪除即可.f3查找下一個,重復操作,直到所有的都清除.f5刷新,除盤符下的antorun.inf文件. 問題即可解決!

雙擊d盤(或者其他盤)打不開,只能右鍵打開,右鍵多了一個「自動播放」,怎麼解決?

答:我的電腦-工具-文件夾選項-查看-顯示所有文件和文件夾,然後進入d盤,把autorun.inf刪除,重啟即可。

如果找不到autorun.inf,那麼

1、開始-->運行-->cmd(打開命令提示符)

2、dir autorun.inf /a (沒有參數a是看不到的,a是顯示所有的意思),此時你會發現一個autorun.inf文件

3、attrib autorun.inf -s -h -r 去掉autorun.inf文件的系統、只讀、隱藏屬性,否則無法刪除。 4、del autorun.inf 重啟即可。

如果雙擊某個盤符時有錯誤提示,說找不到某文件,比如說找不到abc.exe,這時需到注冊表中搜索abc.exe(一般是在SHELL/COMMAND下面),找到後刪除整個SHELL子鍵就可以了。

現象: 1、在每個硬碟驅動器根目錄下存在很多.zip和.rar壓縮文件,文件名多為pass,work,install,letter,大小約為126K;

2、在每個硬碟驅動器根目錄下存在COMMAND.EXE;

3、存在C:\WINDOWS\system32\hxdef.EXE文件;

4、磁碟盤符雙擊不能打開,說Windows無法找到COMMAND.EXE文件,要求定位該文件,定位為C:\windows\explorer之後每次打開會提示「/StartExplorer」出錯,然後依然能打開驅動器文件夾;

5、病毒在每個驅動器下面寫入了一個大小為49位元組的AutoRun.inf文件,

內容為: ----------------------------------------------------------------------------- open="X:\command.exe" /StartExplorer

X為驅動器盤符所以,如果你沒有殺毒,每次點開C/D/E/F/G盤都會激活病毒 手工清除:

1、開始-->運行-->cmd(打開命令提示符)

2、dir autorun.inf /a (沒有參數a是看不到的,a是顯示所有的意思),此時你會發現一個autorun.inf文件,約49位元組。

3、attrib autorun.inf -s -h -r 去掉autorun.inf文件的系統、只讀、隱藏屬性,否則無法刪除。 4、del autorun.inf 到這里還沒完,因為你雙擊了D盤盤符沒有打開卻得到一個錯誤。要求定位command.exe,這個時候自動運行的信息已經加入注冊表了。

5、清除注冊表中 (1)開始-->運行-->regedit-->編輯-->查找-->command.exe 找到的第一個就是C盤的自動運行,刪除整個shell子鍵

㈤ Microsoft.Win32.dll這個dll在什麼地方我得是xp系統,在裡面怎麼找不到

c盤windows/system32 ,DLL都在裡面

㈥ 請問如何用win32匯編語言遍歷所有驅動器和所有文件夾

使用API函數GetLogicalDriveStrings可以實現遍歷所有驅動器。
用法:http://ke..com/view/1290392.htm
使用API函數FindFirstFile和FindNextFile可以實現遍歷文件夾。
用法:http://ke..com/view/1288768.htm
用法:http://ke..com/view/1288769.htm

㈦ 我怎麼找不到win32文件夾

沒有是正常的 我的系統是XP 我也沒有

㈧ 安裝了win10,重啟後顯示win32錯誤報告 系統找不到指定的路徑,哪位大神幫我能幫幫我解決一下

啟動C:\******\*******\ChaDaoCheng.dll時出錯找不到指定的模塊(這是卸載文件在啟動中還有沒有刪除的文件引起的,如果你說的是開機出的這個框,如果不是請你追問我)。(1)運行輸入msconfig回車,打開系統配置實用程序,在啟動項目中查找一個名為「ChaDaoCheng.dll」,如果有將它前面的鉤去掉,然後按應用確定(如果沒有跳過,Win810的開機啟動在任務管理器的「啟動」中)。(2)運行輸入regedit回車打開注冊表,選編輯查找一個名為「ChaDaoCheng.dll」的鍵值項,找到後刪除,多查找幾次刪除干凈,然後重新啟動電腦即可。還是不可以,還原系統或重裝。使用系統自帶的系統還原的方法:Win7810還原系統,右擊計算機選屬性,在右側選系統保護,系統還原,按步驟做就是了,如果有還原軟體,也可以用軟體還原系統。

㈨ Win32.Troj.Agent 找不到病毒毒所在文件夾 各種方式粉碎不掉

按著路徑找到目標文件

然後 再 開始-運行-輸入『cmd』-訪問到目標的文件夾-輸入「rd/s 文件名字」-刪除完畢

發現刪除不了的話 再 輸入「tasklist/m 病毒文件名」看看那個進程再使用這

個病毒文件,得知後結束對應的進程 再刪除看看

完畢~~~~~~~~~

熱點內容
安卓馬桶蓋怎麼拆 發布:2024-10-09 12:19:00 瀏覽:218
移動硬碟文件夾消失 發布:2024-10-09 12:18:20 瀏覽:547
編譯器會自動為它賦初值 發布:2024-10-09 11:42:28 瀏覽:349
演算法自愈 發布:2024-10-09 11:42:27 瀏覽:691
小米密碼輸入錯誤多少次會被鎖 發布:2024-10-09 11:41:46 瀏覽:578
源碼種類 發布:2024-10-09 11:20:35 瀏覽:365
android圖片xml 發布:2024-10-09 11:11:08 瀏覽:532
交換機基本配置與遠程登錄怎麼做 發布:2024-10-09 11:02:06 瀏覽:675
伺服器遠程地址怎麼看 發布:2024-10-09 10:43:24 瀏覽:140
隱身訪問訪客會增加嗎 發布:2024-10-09 10:38:29 瀏覽:209