Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
34 / 21 / 2
Регистрация: 31.03.2009
Сообщений: 362

ListView и получение списка папок

30.10.2009, 17:40. Показов 3892. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть серверная часть игры, надо написать утилиту, есть папка в директории сервера Accounts, в ней папки с логинами юзеров, мне надо получить listView со списком этих логинов и при этом обрезать лишний путь... тоесть что бы вместо C:\downloads\game\server\Accounts\LordXa osa было просто LordXaosa как мне забить ListView папками? я уже перепробовал пару способов (например тут и тут 2-й способ забивал только папку Accounts а 1-й вот:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Dim Result() 'тут сохраним список всех папок
Sub main()
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TheFolder = FSO.GetFolder(CurDir+"\Accounts") 'с какого каталога пойдем
 
ReDim Result(1, 0)
WorkWithSubFolders TheFolder 'поехали
ReDim Preserve Result(1, UBound(Result, 2) - 1)
MsgBox "OK" 'приехали
End Sub
 
'обрабатывает поддиректории
Sub WorkWithSubFolders(ByVal AFolder)
  Dim MoreFolders, TempFolder
    ReDim Preserve Result(1, UBound(Result, 2) + 1)
    Result(0, UBound(Result, 2) - 1) = AFolder.Name
    Result(1, UBound(Result, 2) - 1) = AFolder.Path
  Set MoreFolders = AFolder.SubFolders
  For Each TempFolder In MoreFolders
    WorkWithSubFolders TempFolder
  Next
End Sub
 
Sub Command2_Click()
Call main
For i = 0 To UBound(Result) 'может неверная функция? определение кол-во эл-тов в массиве
ListView1.ListItems.Add i, "a", Result(i), 0, 0 'если делать так то выдает Script out of range
ListView1.ListItems.Item.ListSubItems.Add i, "a", Result(i), 0, 0 'а если так то Argument not optional на .Item
Next i
End Sub
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.10.2009, 17:40
Ответы с готовыми решениями:

Получение списка каталогов (папок)
Всем доброго времени. Необходимо получить список каталогов на компьютере, сохранив во временном текстовике. Но как можно сделать...

Получение в ListBox списка папок
Нужно в листбокс добавить список папок из каталога. Использую ...

Обновление списка файлов и папок в ListView, желательно не по таймеру
Делаю простой файловый менеджер (аля проводник), в принципе уже почти всё сделал, но понимаю что абсолютно не правильно сделал обновление...

11
 Аватар для AlexKalinin
32 / 32 / 0
Регистрация: 13.02.2009
Сообщений: 67
30.10.2009, 18:51
Вот один из способов реализации Вашей задачи, не прибегая к помощи FileSystemObject, хотя там возможности куда богаче + работа программы быстрее
КОД
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Option Explicit
Private Sub Command2_Click()
    On Error GoTo AnyErr
    Dir1.Path = Text1.Text
    File1.Path = Dir1.Path
    'List1.List(0) = File1.List(0)
    List1.Clear
    List2.Clear
    Dim i As Integer
    'список файлов
    For i = 0 To File1.ListCount
        List1.List(i) = File1.List(i)
    Next i
    'список папок
    For i = 0 To Dir1.ListCount
        List2.List(i) = Dir1.List(i)
    Next i
    Exit Sub
AnyErr:
    MsgBox Err.Number & ":" & Err.Description, , "Attention!"
End Sub
Вложения
Тип файла: zip GetFileAndDirList.zip (5.7 Кб, 99 просмотров)
2
34 / 21 / 2
Регистрация: 31.03.2009
Сообщений: 362
30.10.2009, 18:54  [ТС]
я не нашел получение папок в директории у вас, мне нужен автоматический поиск
0
 Аватар для AlexKalinin
32 / 32 / 0
Регистрация: 13.02.2009
Сообщений: 67
30.10.2009, 19:06
Цитата Сообщение от LordXaosa Посмотреть сообщение
я не нашел получение папок в директории у вас, мне нужен автоматический поиск
наверное, я не правильно понял Ваш вопрос, пожалуйста поправьте меня, если дела обстоят не так:

Eсть папка "C:\downloads\game\server\Accounts\"
в данной папке находятся папки и файлы. Задача: не рекурсивно(т.е. не обрабатывая внутренние папки) получить список относительных (без пути) имен папок и вывести их куда-нибудь, например в ListBox
1
34 / 21 / 2
Регистрация: 31.03.2009
Сообщений: 362
30.10.2009, 19:28  [ТС]
да, именно так, но глядя в ваш код я не понял что такое Dir1.Path и File1.Path вы бы пояснили что к чему... насчет относительности это неважно, можно получить абсолютный путь и просто отбросить лишнее, это дело 1 строки...
я просто привык видеть чтото наподобии
string[] str = Directory.GetDirectories("C:/server/accounts"); (C#) тоесть 1 строка где сразу все ясно... есть чтото подобное в vb6?
0
 Аватар для AlexKalinin
32 / 32 / 0
Регистрация: 13.02.2009
Сообщений: 67
30.10.2009, 20:13
Вот более документированный ихсодник + некая адаптация к Вашей ситуации. Я даже создал у себя папку "C:\downloads\game\server\Accounts\" и создал там файлов и папок кучу - все перечитались программой, как Вы и хотели - автоматически, еще можно по нажатию кнопки.

PS
У меня VB6
Вложения
Тип файла: zip GetFileAndDirList.zip (7.3 Кб, 92 просмотров)
2
34 / 21 / 2
Регистрация: 31.03.2009
Сообщений: 362
30.10.2009, 20:49  [ТС]
Вот теперь понял, спасибо. А как теперь это можно переделать под ListView а не ListBox как у вас? Я просто незнаю как добавлять Items туда, в C# както проще это)
0
 Аватар для AlexKalinin
32 / 32 / 0
Регистрация: 13.02.2009
Сообщений: 67
31.10.2009, 08:34
LordXaosa, ок, попробую
1
34 / 21 / 2
Регистрация: 31.03.2009
Сообщений: 362
31.10.2009, 10:05  [ТС]
я ставил sp6 для vb6, выберите в компонентах Microsoft Components (sp6) примерно так
0
 Аватар для AlexKalinin
32 / 32 / 0
Регистрация: 13.02.2009
Сообщений: 67
31.10.2009, 10:36
Цитата Сообщение от LordXaosa Посмотреть сообщение
я ставил sp6 для vb6, выберите в компонентах Microsoft Components (sp6) примерно так
Да, уже нагуглил))
можете посмотреть в аттаче
Вложения
Тип файла: zip GetFileAndDirList.zip (9.1 Кб, 88 просмотров)
2
34 / 21 / 2
Регистрация: 31.03.2009
Сообщений: 362
31.10.2009, 16:32  [ТС]
спасибо большое, именно то что нужно! но хочу поправить, последний цикл надо начинать с 0, а не 1 и до
Visual Basic
1
For i = 0 To Dir1.ListCount - 1
а не
Visual Basic
1
For i = 0 To Dir1.ListCount
как у вас, иначе добавляется пустая строка. Большое спасибо!
P.S. Кстати Вы сами пишите коменты или автоматика? подробно очень все описано и красиво, плюс Вам
0
 Аватар для AlexKalinin
32 / 32 / 0
Регистрация: 13.02.2009
Сообщений: 67
31.10.2009, 16:41
спасибо большое, именно то что нужно!
пожалуйста
Кстати Вы сами пишите коменты или автоматика? подробно очень все описано и красиво, плюс Вам
сам пишу, позаимствовал стиль у Theo Zacharias (theo_yz@yahoo.com), автора программы VBPaint (аналог MSPaint).

Не по теме:

PS.
Вообще, последнее время стараюсь документировать свои исходники, так сказать - учусь работать в коллективе. Говорят в наше время это ценно... :-)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.10.2009, 16:41
Помогаю со студенческими работами здесь

Вывод списка файлов и папок в заданной папке в listview
Здравствуйте помогите реализовать вывод списка файлов\папок в listview. У меня есть textbox куда записывается определенный путь скажем...

Получение списка файлов из папок и подпапок
Здравствуйте, нужно получить список всех файлов в папках и подпапках учетной записи windows (C:\Users\123\) Использую код: string...

Получение списка папок текущего каталога
возникла проблема. для проги нужна функция, возвращающая список папок текущего каталога. то есть (к примеру) если прога лежит в...

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

Получение списка нужных папок и подпапок в указанной папке
Здравствуйте. Вот код: procedure TForm1.SearchDirs(aPath, aAddPath: AnsiString; aMask: TstringList; aList: TListBox); var SR :...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru