Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [VB6] Поиск скрытых файлов VB, Поиск скрытых файлов VB 
:(
    Опции темы
Vadimn
Дата 11.7.2009, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.7.2009

Репутация: нет
Всего: нет



Подскажите пожалуйста как на VB сделать поиск на диске (Х:\) среди всех файлов (и скрытых тоже), и во всех вложенных папках, по маске (.txt). И с возможностью добавить цикл с количеством локальных дисков ?
Спасибо!

PM MAIL   Вверх
Naghual
Дата 11.7.2009, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 2
Всего: 49



Пользуйтесь поиском по форуму пожалуйста.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
neic
Дата 12.7.2009, 01:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: 5
Всего: 7



Совсем не давно обсуждалось, примерно 2-3 страницы вперёд промотай.
PM MAIL WWW ICQ Skype   Вверх
Vadimn
Дата 12.7.2009, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.7.2009

Репутация: нет
Всего: нет




Извините за повторение!!! Но не найду код который на диске (Х:\) среди всех файлов (и скрытых тоже), и во всех вложенных папках (и скрытых тоже), по маске (*.txt). И с возможностью добавить цикл с количеством локальных дисков ?

Этот код находит все файлы и папки (и скрытых тоже) на диске и отсортировует (*.txt), но как его сделать чтобы во вложеных папках тоже искал ?

Код

Option Explicit
Dim Disk As String

Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As Long
End Type
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40
Private Const FOF_NOCONFIRMATION = &H10
Private Const FOF_SILENT = &H4

Sub SendFileToRecycleBin(FileName As String, Optional Confirm As Boolean = True, Optional Silent As Boolean = False)
Dim FileOp As SHFILEOPSTRUCT
With FileOp
.wFunc = FO_DELETE
.pFrom = FileName
.fFlags = FOF_ALLOWUNDO
If Not Confirm Then .fFlags = .fFlags + FOF_NOCONFIRMATION
If Silent Then .fFlags = .fFlags + FOF_SILENT
End With
SHFileOperation FileOp
End Sub

Private Sub Command1_Click()
List1.Clear
Disk = Dir("e:\", 30)
If Disk <> "" Then
Do While Disk <> ""
If Disk = "." Then
Disk = ""
Else
If Disk = ".." Then
Disk = ""
Else
If "txt" = Mid(Disk, Val(Len(Disk)) - Val(2), 3) Then 
List2.AddItem Disk
Else
List1.AddItem Disk
End If
End If
End If
Disk = Dir()
Loop
End If
End Sub


И этот код нашол скрытый файл но только один а мне надо все файлы *.txt и скрытые, и во всех вложенных папках ?

Код

Option Explicit
Private Declare Function SearchTreeForFile Lib "imagehlp" (ByVal RootPath As String, ByVal InputPathName As String, ByVal OutputPathBuffer As String) As Long
Private Const MAX_PATH = 260

Private Sub Command1_Click()
 Dim tempStr As String, Ret As Long
    DoEvents
    
    tempStr = String(MAX_PATH, 0)
    Ret = SearchTreeForFile("c:\", "123.txt", tempStr)
    If Ret <> 0 Then
        List1.AddItem "на держи " + Left$(tempStr, InStr(1, tempStr, Chr$(0)) - 1)
    Else
        List1.AddItem "а ты его делал"
    End If
End Sub


PM MAIL   Вверх
Akina
Дата 13.7.2009, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 17
Всего: 454



Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Vadimn
Дата 15.7.2009, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.7.2009

Репутация: нет
Всего: нет



Спасибо за совет!!! 
Ссылку скинте пожалуйста на код хто может. 

PM MAIL   Вверх
SOLAMON
Дата 21.7.2009, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 21.7.2009
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Ну всегда еще можно через DOS.

1) Делаем HPROCESS = shell("dir /S /AH /B X:\*.* > X:\FILES.LOG")
2) Ждем завершения процесса (ну например в цикле проверяя валидность процесса)
3) Парсим файл X:\FILES.LOG

Не самое красивое решение - зато все файлы найдет.
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0502 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.