Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Visual Basic Новый топик    Ответить
 Проверка совпадения имен файлов  [new]
MaxLerXXX
Member

Откуда:
Сообщений: 7
Здравствуйте.
Макросом из Ворда сохраняю файл в нужную папку на диске. При этом если файл с таким именем уже есть в этой папке, то он перезаписывается. Хочу понять как выполнить проверку наличия уже существующего файла с таким именем, чтобы можно было реализовать возможность выбора замены файла, сохранения под другим именем или отмены сохранения. Точнее, проверку нужно производить по части имени.
Пример: есть файл TZ_105-17_01.03.2017.docm. Создаётся файл TZ_105-17_05.03.2017.docm. Как видите меняется дата. Но двух одинаковых документов с номером 105-17 не должно быть.
Я в этом деле новичок и только начинаю изучать VB, поэтому если что не так прошу прощения за глупые вопросы.
1 мар 17, 23:42    [20255946]     Ответить | Цитировать Сообщить модератору
 Re: Проверка совпадения имен файлов  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20295
C помощью функции Dir перебрать все файлы в папке, проверяя, не совпадает ли искомая часть имени.
1 мар 17, 23:48    [20255951]     Ответить | Цитировать Сообщить модератору
 Re: Проверка совпадения имен файлов  [new]
The_Prist
Member

Откуда: www.excel-vba.ru
Сообщений: 1817
Shocker.Pro
C помощью функции Dir перебрать все файлы в папке

Shocker.Pro,
при помощи Dir можно сразу маску задать :)
MaxLerXXX
есть файл TZ_105-17_01.03.2017.docm. Создаётся файл TZ_105-17_05.03.2017.docm

sP = "C:\test\файлы какие-то\" 'путь к папке с файлами
sf = dir(sP & "TZ_105-17_??.??.??.docm")
if sf <> "" then
msgbox "файл уже есть в папке!"
end if

если на конце может быть не только дата, то можно и так:
sf = dir(sP & "TZ_105-17_*.docm")
2 мар 17, 10:10    [20256445]     Ответить | Цитировать Сообщить модератору
 Re: Проверка совпадения имен файлов  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20295
The_Prist
при помощи Dir можно сразу маску задать :)
и действительно ))
2 мар 17, 10:13    [20256458]     Ответить | Цитировать Сообщить модератору
 Re: Проверка совпадения имен файлов  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 18848
MaxLerXXX
При этом если файл с таким именем уже есть в этой папке, то он перезаписывается. Хочу понять как выполнить проверку наличия уже существующего файла с таким именем, чтобы можно было реализовать возможность выбора замены файла, сохранения под другим именем или отмены сохранения. Точнее, проверку нужно производить по части имени.
Не надо никаких проверок - это лишнее и нахрен не нужное телодвижение. Просто безусловно удаляйте по требуемой маске при отключенном обработчике ошибки. Есть файл - удалится, нет - хуже не станет.
2 мар 17, 10:28    [20256513]     Ответить | Цитировать Сообщить модератору
 Re: Проверка совпадения имен файлов  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20295
Akina
Просто безусловно удаляйте
Вообще-то автор хотел сохранять под другим именем, а не удалять ))
2 мар 17, 10:51    [20256631]     Ответить | Цитировать Сообщить модератору
 Re: Проверка совпадения имен файлов  [new]
MaxLerXXX
Member

Откуда:
Сообщений: 7
Shocker.Pro,
Спасибо за Ваш ответ.
2 мар 17, 23:04    [20259019]     Ответить | Цитировать Сообщить модератору
 Re: Проверка совпадения имен файлов  [new]
MaxLerXXX
Member

Откуда:
Сообщений: 7
The_Prist,

Благодарю за ответ. Хочу только уточнить: а я могу в качестве маски для "105-17" или "TZ_105-17_" задать переменную? Потому что номера будут постоянно меняться.
2 мар 17, 23:14    [20259042]     Ответить | Цитировать Сообщить модератору
 Re: Проверка совпадения имен файлов  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20295
да
2 мар 17, 23:21    [20259061]     Ответить | Цитировать Сообщить модератору
Все форумы / Visual Basic Ответить