FSO

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
FSO
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 17.04.2005 (Вс) 11:50

FSO

Сообщение FSO » 08.05.2005 (Вс) 0:38

Вопрос в следующем:
1) Можно ли изменить Путь и имя Папки при создании папки через метод CreateFolder? т.е. хочу создавать не через абсолютный путь
set fld = fso.CreateFolder("C:\MyTest"), а через относительный (app.path)
2) Допустим есть папка MyTest, в ней находятся скажем 15 файлов разный расширений. Можно ли имена и расширения файлов поместить в List? т.е. произвести сканирование папки и записать значения в list.

Опришник
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 09.01.2005 (Вс) 0:48
Откуда: localhost

Сообщение Опришник » 08.05.2005 (Вс) 0:51

1)не понял
2)
FindFirstFile - находит первый файл, возвращает манипулятор поиска
FindNextFile - находит следующий файл
FindClose - закрывает манипулятор
а ещё есть стандартный элемент FileListBox
А здесь могла бы быть ваша реклама...)

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 08.05.2005 (Вс) 1:07

Dim Fso As New FileSystemObject

Sub InterateFolder(Fld As Scripting.Folder, Optional Level As Integer = 0)
Dim FldSub As Scripting.Folder
Debug.Print Space(2 * Level) & Fld.Path
For Each FldSub In Fld.SubFolders
Call InterateFolder(FldSub, Level + 1)
Next
End Sub

Private Sub Command1_Click()
Call InterateFolder(Fso.GetFolder("C:\"))
End Sub
Удачи!
С уважением, Алексадр.

FSO
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 17.04.2005 (Вс) 11:50

Сообщение FSO » 08.05.2005 (Вс) 9:28

Опришник писал(а):1)не понял


Вообщем смотри, абсолбтный путь это "c\Windows\calc.exe", Относительный путь это положение пути начиная от объекта, т.е. App.Path

Так вот мне надо использовать относительный путь, т.е. надо создать папку не через fso.CreateFolder("C:\MYTEST"), а с использованием App.path чтобы в результате получилось так:

Есть компилированный файл(ехе), при запуске его в этой же папки создать папку "MyTest".
Примерный код:

Dim BxpG As Integer
DBName = Input("Введите название создаваемой папки:")
Fso.CreateFolder("App.Path + "\Имя файла" + DBName"

Вот что-то в этом роде.....

Опришник
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 09.01.2005 (Вс) 0:48
Откуда: localhost

Сообщение Опришник » 08.05.2005 (Вс) 9:32

FSO писал(а):
Опришник писал(а):1)не понял

...
Примерный код:

Dim BxpG As Integer
DBName = Input("Введите название создаваемой папки:")
Fso.CreateFolder("App.Path + "\Имя файла" + DBName"

Вот что-то в этом роде.....

Fso.CreateFolder(App.Path & "\Имя файла" & DBName) - вот так надо...
А здесь могла бы быть ваша реклама...)

FSO
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 17.04.2005 (Вс) 11:50

Сообщение FSO » 08.05.2005 (Вс) 10:22

Fso.CreateFolder(App.Path & "\Имя файла\" & DBName) - вот так надо...


Option Explicit
Dim fso As New FileSystemObject
Dim fold As Folder
Private Sub Command1_Click()
Dim DBName As String
DBName = InputBox("Введите имя папки", "Создание папки")
Set fold = fso.CreateFolder(App.Path & "\MyTest\" & DBName)
End Sub



Результат: Error 76
Path not found:
Путь определен неверно.

Где ошибка???[/quote]

FSO
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 17.04.2005 (Вс) 11:50

Сообщение FSO » 08.05.2005 (Вс) 10:44

Нашел ошибку.
Set fold = fso.CreateFolder(App.Path & "\MyTest\" & DBName)
Пытался ссылаться на несуществующий подуровень папки.
надо типа так:
Set fold = fso.CreateFolder(App.Path & "\\" & DBName)


теперь как разрешить вопрос № 2?

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 08.05.2005 (Вс) 14:13

В папке с программой папку создать можно MkDir "DBName"

А на второй вопрос ответов уже достаточно
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

FSO
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 17.04.2005 (Вс) 11:50

Сообщение FSO » 08.05.2005 (Вс) 15:56

Еще вопрос возник:
Допустим мне надо скопировать файл с диска на винт в папку с прогой.
т.е. выбрать файл через drive/dir/file. Затем выделеный файл скопировать в папку с прогой через относительный путь.
Как осуществляется выбор в file1?
Что то вроде этого:

Dim fso As New FileSystemObject
Dim fil1 As File
Set fil1 = fso.GetFile("c:\MyFile.txt")
fil1.Copy (App.Path & "\\")

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 08.05.2005 (Вс) 16:12

Слушай... Я понимаю, помощь это хорошо... Но надо же иногда думать... Или эксперементировать. все-таки метод научного тыка срабатывает всегда 100%

Код: Выделить всё
Private Sub Dir1_Change()
File1 = Dir1
End Sub

Private Sub Drive1_Change()
Dir1 = Drive1
End Sub

Private Sub File1_Click()
MsgBox File1.Path & "\" & File1
End Sub
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 08.05.2005 (Вс) 16:13

А потом просто FileCopy
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

FSO
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 17.04.2005 (Вс) 11:50

Сообщение FSO » 09.05.2005 (Пн) 9:29

kirrun писал(а):А потом просто FileCopy


Неполучается....., kirrun выручай..!


Option Explicit
Dim fso As FileSystemObject, fil1 As File

Private Sub Dir1_Change()
File1 = Dir1
End Sub

Private Sub Drive1_Change()
Dir1 = Drive1
End Sub

Private Sub File1_Click()
Dim a As String
a = File1
MsgBox File1.Path & "" & a
fil1.Copy (App.Path & "" & a)
End Sub


Error 91:
Переменная объекта или переменная блока With не задана

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 09.05.2005 (Пн) 12:15

Код: Выделить всё
FileCopy file1.path & "\" & a, app.path & "\" & a
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 09.05.2005 (Пн) 12:21

Подумал я и решил написать конкретнее...

В проекте DriveListBox с именем Drive1, DirListBox с именем Dir1, FileListBox с именем File1.

Код: Выделить всё
Option Explicit

Private Sub Dir1_Change()
File1 = Dir1 'При смене папки меняем содержимое FIleListBox'a чтобы там были файлы из выбранной папки.
End Sub

Private Sub Drive1_Change()
Dir1 = Drive1 'При смене диска, меняем содержимое DirListBox'a чтобы там были папки с этого диска.
End Sub

Private Sub File1_DblClick()
FileCopy file1.path & "" & file1, app.path & "" & file1 'При ДаблКлике по файлу, копируем его в папку с программой
End Sub


kirrun писал(а):А потом просто FileCopy


FSO писал(а):fil1.Copy (App.Path & "" & a)


А вообще, неплохо чуть больше внимательности и если говорят FileCopy, использовать FileCopy а не что-то другое...[/quote]
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

FSO
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 17.04.2005 (Вс) 11:50

Сообщение FSO » 09.05.2005 (Пн) 14:17

kirrun писал(а):Подумал я и решил написать конкретнее...

В проекте DriveListBox с именем Drive1, DirListBox с именем Dir1, FileListBox с именем File1.

Код: Выделить всё
Option Explicit

Private Sub Dir1_Change()
File1 = Dir1 'При смене папки меняем содержимое FIleListBox'a чтобы там были файлы из выбранной папки.
End Sub

Private Sub Drive1_Change()
Dir1 = Drive1 'При смене диска, меняем содержимое DirListBox'a чтобы там были папки с этого диска.
End Sub

Private Sub File1_DblClick()
FileCopy file1.path & "" & file1, app.path & "" & file1 'При ДаблКлике по файлу, копируем его в папку с программой
End Sub


kirrun писал(а):А потом просто FileCopy


FSO писал(а):fil1.Copy (App.Path & "" & a)


А вообще, неплохо чуть больше внимательности и если говорят FileCopy, использовать FileCopy а не что-то другое...
[/quote]

Да-да.... Спасибо!
Я просто не работал с функциями и операторами доступа к файлам... тока через FSO.
А не мог бы подсказать оператор удаления и перемещения файла??
И синтаксис к ним :)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 09.05.2005 (Пн) 14:26

Удаление - Kill
Перемещение - FileCopy а потом Kill =)=)=)
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Опришник
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 09.01.2005 (Вс) 0:48
Откуда: localhost

Сообщение Опришник » 10.05.2005 (Вт) 0:03

Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long

вот так перемещаются файлы...
А здесь могла бы быть ваша реклама...)

FSO
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 17.04.2005 (Вс) 11:50

Сообщение FSO » 10.05.2005 (Вт) 10:01

kirrun писал(а):Удаление - Kill
Перемещение - FileCopy а потом Kill =)=)=)


Логично :)))


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 88

    TopList