Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Проверить наличие файла в архиве zip Добавлено: 30.09.08 15:04  

Автор вопроса:  Юра
Всем привет! Полдня бьюсь над проблеммой. Необходимо проверить программно наличие файла с именем допустим rrr.xls в архиве zip/ Т.Е. не открывать архив (это занимает время и здесь програмно реализовать просто
Shell "7z ....") а просто проверить если файл с указанным именем в архиве или нет и по результатам проверки работать дальше. Как правильно составить синтаксис.

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #1
Добавлено: 30.09.08 17:12
Я вот такое выдумал. Вроде на всех зипах работает.
  1. Private Sub Form_Load()
  2.     Me.Caption = IsFileInZIP("d:\RichEdit.zip", "", "mRichEdit.bas", False)
  3. End Sub
  4.  
  5. ' ZIPFile - имя zip-файла
  6. ' PathToFileInZip - путь к файлу внутри зипа без завершающего слеша, _
  7.     если файл лежит в корне, то оставить пустым ("")
  8. ' FileInZip - имя файла, наличие которого мы проверяем
  9. ' IgnorePath - игнорировать путь и искать во всем зипе
  10.  
  11. Function IsFileInZIP(ByVal ZIPFile As String, ByVal PathToFileInZip As String, ByVal FileInZip As String, Optional ByVal IgnorePath As Boolean = True) As Boolean
  12.     Dim strData As String
  13.     Dim FF As Integer
  14.     Dim Search As String
  15.     IsFileInZIP = False
  16.     If Dir$(ZIPFile) = "" Then Exit Function
  17.     FF = FreeFile
  18.     Open ZIPFile For Binary As #FF
  19.     strData = Space(LOF(FF))
  20.     Get #FF, , strData
  21.     Close
  22.     Search = String$(3, Chr$(0)) & FileInZip
  23.     If IgnorePath Then Search = FileInZip
  24.     If PathToFileInZip <> "" Then Search = String$(3, Chr$(0)) & PathToFileInZip & "/" & FileInZip
  25.     If InStr(1, strData, Search, vbTextCompare) > 0 Then IsFileInZIP = True
  26. End Function

Ответить

Номер ответа: 2
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #2
Добавлено: 01.10.08 11:33
7z имеет открытый исходный код. исходники 7z и флаг тебе в руки.

Ответить

Номер ответа: 3
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #3
Добавлено: 01.10.08 16:22
Имхо, такие сложности в данном случае ни к чему...

Ответить

Номер ответа: 4
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #4
Добавлено: 01.10.08 20:44
ну тогда просто надо использовать командную строку, там что-нибудь в тему должно быть, либо посмотреть код wcx-плагина 7z для Total Commander

Ответить

Номер ответа: 5
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #5
Добавлено: 01.10.08 21:52
Мой код не понравился?)

Ответить

Номер ответа: 6
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #6
Добавлено: 02.10.08 15:17
Отличный пример по ZIPFile! Но так ты же не в тему пример дал, т.к. автор судя по тексту с 7z работает..

Ответить

Номер ответа: 7
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #7
Добавлено: 02.10.08 16:56
Юра пишет:
Необходимо проверить программно наличие файла с именем допустим rrr.xls в архиве zip

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам