Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Поиск файлов... Добавлено: 15.12.03 23:09  

Автор вопроса:  FolDen | ICQ: 336895855 

Может кто-нибудь подскажет как с помощью Visual Basic наити фаилы по маске (bak,@@@,log,и проч) а затем удалить их, получается что-то вроде очистки диска

Пожалуйста киньте пример или дайте ссылку, буду очень благодарен !? 

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #1 Добавлено: 16.12.03 00:31

на текущей форме: : FileListBox по имени File1, и DirListBox по имени Dir1.

ReDim sArray(0) As String

Call DirWalk("OLE*.DLL", "C:\", sArray)


Эта процедура принимает * и ? в первом аргументе, который задает маску поиска. Вы можете задать несколько масок, разделяя их символом ";", например, "OLE*.DLL; *.TLB". Второй аргумент - место старта, третий аргумент - массив строк.

Sub DirWalk(ByVal sPattern As String, _

        ByVal CurrDir As String, sFound() _

        As String)

Dim i As Integer

Dim sCurrPath As String

Dim sFile As String

Dim ii As Integer

Dim iFiles As Integer

Dim iLen As Integer

 

If Right$(CurrDir, 1) <> "\" Then

        Dir1.Path = CurrDir & "\"

Else

        Dir1.Path = CurrDir

End If

Номер ответа: 2
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #2 Добавлено: 16.12.03 00:36
Блин, что-то заклинило и кусок кода потерялся в пучине Интернета Я тебе на мыло скинул пример рекурсивного поиска файлов по маске. Думаю разберешься

Ответить

Номер ответа: 3
Автор ответа:
 Mace [F.T.L.]



ICQ: 265477716 

Вопросов: 0
Ответов: 11
 Профиль | | #3 Добавлено: 16.12.03 02:25

' Это поиск через апи - млжет подойдёт... Еслм что конретней... Рассказывай...

'Create a form with a command button (command1), a list box (list1)

'and four text boxes (text1, text2, text3 and text4).

'Type in the first textbox a startingpath like c:\

'and in the second textbox you put a pattern like *.* or *.txt

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long

Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long

Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long

Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

Const MAX_PATH = 260

Const MAXDWORD = &HFFFF

Const INVALID_HANDLE_VALUE = -1

Const FILE_ATTRIBUTE_ARCHIVE = &H20

Const FILE_ATTRIBUTE_DIRECTORY = &H10

Const FILE_ATTRIBUTE_HIDDEN = &H2

Const FILE_ATTRIBUTE_NORMAL = &H80

Const FILE_ATTRIBUTE_READONLY = &H1

Const FILE_ATTRIBUTE_SYSTEM = &H4

Const FILE_ATTRIBUTE_TEMPORARY = &H100

Private Type FILETIME

dwLowDateTime As Long

dwHighDateTime As Long

End Type

Private Type WIN32_FIND_DATA

dwFileAttributes As Long

ftCreationTime As FILETIME

ftLastAccessTime As FILETIME

ftLastWriteTime As FILETIME

nFileSizeHigh As Long

nFileSizeLow As Long

dwReserved0 As Long

dwReserved1 As Long

cFileName As String * MAX_PATH

cAlternate As String * 14

End Type

Function StripNulls(OriginalStr As String) As String

If (InStr(OriginalStr, Chr(0)) > 0) Then

OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)

End If

StripNulls = OriginalStr

End Function

Function FindFilesAPI(path As String, SearchStr As String, FileCount As Integer, DirCount As Integer)

'KPD-Team 1999

'E-Mail: KPDTeam@Allapi.net <mailto:KPDTeam@Allapi.net>

'URL: <http://www.allapi.net/>

Dim FileName As String ' Walking filename variable...

Dim DirName As String ' SubDirectory Name

Dim dirNames() As String ' Buffer for directory name entries

Dim nDir As Integer ' Number of directories in this path

Dim i As Integer ' For-loop counter...

Dim hSearch As Long ' Search Handle

Dim WFD As WIN32_FIND_DATA

Dim Cont As Integer

If Right(path, 1) <> "\" Then path = path & "\"

' Search for subdirectories.

nDir = 0

ReDim dirNames(nDir)

Cont = True

hSearch = FindFirstFile(path & "*", WFD)

If hSearch <> INVALID_HANDLE_VALUE Then

Do While Cont

DirName = StripNulls(WFD.cFileName)

' Ignore the current and encompassing directories.

If (DirName <> ".") And (DirName <> "..") Then

' Check for directory with bitwise comparison.

If GetFileAttributes(path & DirName) And FILE_ATTRIBUTE_DIRECTORY Then

dirNames(nDir) = DirName

DirCount = DirCount + 1

nDir = nDir + 1

ReDim Preserve dirNames(nDir)

End If

End If

Cont = FindNextFile(hSearc

Ответить

Номер ответа: 4
Автор ответа:
 Mace [F.T.L.]



ICQ: 265477716 

Вопросов: 0
Ответов: 11
 Профиль | | #4 Добавлено: 16.12.03 02:28
Ну а потом - как найдёт файл нужный тебе удаляешь его... Например <Kill "C:\command.com"> Ну там много вариантов... Возможно надо просмореть атрибуты файла... Немного переделав Поиск ты без проблем этого добъёшься...

Ответить

Номер ответа: 5
Автор ответа:
 Mace [F.T.L.]



ICQ: 265477716 

Вопросов: 0
Ответов: 11
 Профиль | | #5 Добавлено: 16.12.03 02:43

'Попытка номер два передать код

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long

Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long

Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long

Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

Const MAX_PATH = 260

Const MAXDWORD = &HFFFF

Const INVALID_HANDLE_VALUE = -1

Const FILE_ATTRIBUTE_ARCHIVE = &H20

Const FILE_ATTRIBUTE_DIRECTORY = &H10

Const FILE_ATTRIBUTE_HIDDEN = &H2

Const FILE_ATTRIBUTE_NORMAL = &H80

Const FILE_ATTRIBUTE_READONLY = &H1

Const FILE_ATTRIBUTE_SYSTEM = &H4

Const FILE_ATTRIBUTE_TEMPORARY = &H100

Private Type FILETIME

dwLowDateTime As Long

dwHighDateTime As Long

End Type

Private Type WIN32_FIND_DATA

dwFileAttributes As Long

ftCreationTime As FILETIME

ftLastAccessTime As FILETIME

ftLastWriteTime As FILETIME

nFileSizeHigh As Long

nFileSizeLow As Long

dwReserved0 As Long

dwReserved1 As Long

cFileName As String * MAX_PATH

cAlternate As String * 14

End Type

Function StripNulls(OriginalStr As String) As String

If (InStr(OriginalStr, Chr(0)) > 0) Then

OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)

End If

StripNulls = OriginalStr

End Function

Function FindFilesAPI(path As String, SearchStr As String, FileCount As Integer, DirCount As Integer)

'KPD-Team 1999

'E-Mail: KPDTeam@Allapi.net

'URL: http://www.allapi.net/

Dim FileName As String Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам