Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск файла по имени без расширения / 14 сообщений из 14, страница 1 из 1
08.01.2013, 19:14
    #38102427
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по имени без расширения
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
..............
 FileName = "C:\Documents and Settings\All Users\Application Data\п.1.JPG"
.........
Function ФайлСуществует(ИмяФайла As String) As Boolean
Dim nf
On Error Resume Next
nf = FreeFile
Open ИмяФайла For Input As #nf
If err Then
    ФайлСуществует = False
Else
    ФайлСуществует = True
End If
Close #nf
End Function


Когда делаю так все работает. Но когда убираю расширение .JPG не работает.
А надо не зависимо от расширения (Pdf, doc, xsl или просто папка) находило по имени!!??? Подскажите как реализовать!!!???
...
Рейтинг: 0 / 0
08.01.2013, 20:04
    #38102471
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по имени без расширения
Все сам разобрался....
Код: vbnet
1.
ФайлСуществует= dir(ИмяФайла & ".*")<>""
...
Рейтинг: 0 / 0
08.01.2013, 20:14
    #38102486
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по имени без расширения
Поспешил радоваться...
Прога не реагирует на папки!!!???
То есть со всеми файлами работает, кроме папок...???!!!
...
Рейтинг: 0 / 0
08.01.2013, 21:32
    #38102554
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по имени без расширения
Техник55Прога не реагирует на папки
Сфига бы ей реагировать на папки? как ты себе представляешь Open папку For Input, а?

PS. Не надо столько восклицательных и вопросительных знаков. Уровень твоего знания и без них виден.
...
Рейтинг: 0 / 0
08.01.2013, 22:18
    #38102609
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по имени без расширения
Раз вы "уважаемый" так расуждаете могу предположить, что ваш уровень очень низок.
Я просто не правильно высказался. Мне нужно, чтобы программа отслеживала появление папки и других файлов. Вот и все!!!
...
Рейтинг: 0 / 0
08.01.2013, 23:37
    #38102679
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по имени без расширения
Техник55Раз вы "уважаемый" так расуждаете могу предположить, что ваш уровень очень низок.
Я просто не правильно высказался. Мне нужно, чтобы программа отслеживала появление папки и других файлов. Вот и все!!!

Ой-ой-ой какие мы нежные! Даже [F1] нажать баимси!
Syntax

Dir[(pathname [, attributes] )]

The Dir function syntax has these parts:
Part Description
pathname Optional. String expression that specifies a file name may include directory or folder, and drive. A zero-length string ("") is returned if pathname is not found.
attributes Optional . Constant or numeric expression, whose sum specifies file attributes. If omitted, returns files that match pathname but have no attributes.

Settings

The attributes argument settings are:
Constant Value Description
vbNormal 0 (Default) Specifies files with no attributes.
vbReadOnly 1 Specifies read-only files in addition to files with no attributes.
vbHidden 2 Specifies hidden files in addition to files with no attributes.
VbSystem 4 Specifies system files in addition to files with no attributes.
vbVolume 8 Specifies volume label; if any other attributed is specified, vbVolume is ignored.
vbDirectory 16 Specifies directories or folders in addition to files with no attributes.
...
Рейтинг: 0 / 0
08.01.2013, 23:37
    #38102680
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по имени без расширения
Техник55Я просто не правильно высказался.Именно. Формулировать надо задачу, а не свои попытки её решить.
http://segfault.kiev.ua/smart-questions-ru.html#goal

Попробуйте ещё раз, с самого начала. Пока без кода, но совершенно точно, со всеми условиями, особенностями и пр.
...
Рейтинг: 0 / 0
09.01.2013, 11:02
    #38103000
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по имени без расширения
По сути мне нужно, чтобы прога по имени файла(без расширения) или ПАПКИ определяла его наличие.
Допустим необходимо проверить в папке "Документы" наличие файла(папки) "п.1"
...
Рейтинг: 0 / 0
09.01.2013, 11:28
    #38103057
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по имени без расширения
Техник55,

Если имя файла без расширения вам ещё может что-то дать, то что вам даст имя папки "без расширения"? Например, есть у вас папка "My.1" - что вам даст знание, что есть некий "My"? Поэтому не смешивайте проверку наличия файла и проверку наличия каталога...
...
Рейтинг: 0 / 0
09.01.2013, 11:58
    #38103112
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по имени без расширения
Просто есть папка в ней: п.1.doc или п.1.pdf или п.1.xls или папка(каталог) - п.1
А вот в этой папке тоже разные файлы... Поэтому мне нужно знать ее наличие или отсутствие!
...
Рейтинг: 0 / 0
09.01.2013, 12:02
    #38103123
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по имени без расширения
Техник55Поэтому мне нужно знать ее наличие или отсутствие!Всё же F1 не нажимаем, мы это заметили... Вам же сказали:
attributes
vbDirectory 16 Specifies directories or folders in addition to files with no attributes.
...
Рейтинг: 0 / 0
09.01.2013, 12:08
    #38103139
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по имени без расширения
Техник55По сути мне нужно, чтобы прога по имени файла(без расширения) или ПАПКИ определяла его наличие.
Допустим необходимо проверить в папке "Документы" наличие файла(папки) "п.1"
1) Имя "п.1" уже может трактоваться как имеющее расширение.
2) Что сделать, чтобы искать файл либо каталог по маске имени вне зависимости от расширения, ты уже разобрался.
3) Что файлы и каталоги следует обрабатывать отдельно - AndreTM уже сказал. Хотя вроде можно получить сквозной список, используя Dir() с соотв. параметрами - но различить при этом, где файл, а где каталог, без доп. телодвижений не получится.
...
Рейтинг: 0 / 0
09.01.2013, 12:11
    #38103146
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по имени без расширения
тут смотрите, код адаптируйте под свои нужды:
http://excelvba.ru/code/FilenamesCollection
...
Рейтинг: 0 / 0
09.01.2013, 16:55
    #38103759
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по имени без расширения
Также ещё код который можете адаптировать под себя, использует API. Быстрый. Также с сетевыми дисками работает быстро. Так как FSO например у меня при работе с сетевыми дисками, очень тормозит.
Класс cFindFiles
Код: vbnet
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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
Option Explicit

'№№ Функции API №№
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 FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

'№№ Структуры №№
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 * 260
    cAlternate As String * 14
End Type

'№№ События №№
Public Event EnumerateFile(ByVal sFileName As String)
Public Event EnumerateFolder(ByVal sFolderPath As String)


'№№№  Мощный переборщик файлов в папке и подпапках, возвращает коллекцию полных путей  №№№
' - Очень быстрый способ, рекурсивное прохождение -
Public Function FileCollection(ByVal sPath As String, Optional ByVal sMaskFile As String = "*.*", Optional ByRef FileCollect As Collection) As Collection
    Dim FD As WIN32_FIND_DATA, sFile As String, hFindHandle As Long
    
    If FileCollect Is Nothing Then Set FileCollect = New Collection
    If Right(sPath, 1) <> "\" Then sPath = sPath & "\"
    
    hFindHandle = FindFirstFile(sPath & "*", FD)
    
    If hFindHandle > 0 Then
        Do
            sFile = FD.cFileName
            sFile = Left(sFile, InStr(1, sFile, vbNullChar) - 1)
    
            If sFile <> "." And sFile <> ".." Then
                If (FD.dwFileAttributes And vbDirectory) = vbDirectory Then
                    RaiseEvent EnumerateFolder(sPath & sFile)
                    FileCollection sPath & sFile, sMaskFile, FileCollect
                Else
                    If sFile Like sMaskFile Then
                        RaiseEvent EnumerateFile(sPath & sFile)
                        FileCollect.Add sPath & sFile
                    End If
                End If
            End If
        Loop While FindNextFile(hFindHandle, FD)
        
        FindClose hFindHandle
    End If
    
    Set FileCollection = FileCollect
End Function

...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск файла по имени без расширения / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]