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

Откуда: 307cwam.ucoz.ru
Сообщений: 310
Подскажите, а как узнать/прописать этот путь/ссылку на файл внутри архива.
Например: я открываю в архиве рисунок на просмотр, смотрю в его свойствах путь.
В начале он такой.
C:\Users\Master 307\AppData\Local\Temp\Rar$DIa0.888\Рис1 (640х428).png

Закрываю, открываю заново этот же рисунок. Путь уже другой.
C:\Users\Master 307\AppData\Local\Temp\Rar$DIa0.733\Рис1 (640х428).png

И этот рар всегда меняется <Rar$DIa0.***>
---
И как тогда сделать ссылку на файл Рис1 (640х428).png, который внутри архива?
5 май 19, 14:56    [21878103]     Ответить | Цитировать Сообщить модератору
 Re: Путь/ссылка на файл внутри архива  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4482
Александр Маркин
И этот рар всегда меняется <Rar$DIa0.***>

создается временный каталог для временной распаковки

C:\Users\Master 307\AppData\Local\Temp\ -- это каталог, прописанный в переменной TEMP
Rar$DIa0.733-------------------------------------ЭТО СЛУЧАЙНОЕ ИМЯ подкаталога
--далее идут имена и реальные пути структуры архива
5 май 19, 16:10    [21878138]     Ответить | Цитировать Сообщить модератору
 Re: Путь/ссылка на файл внутри архива  [new]
Александр Маркин
Member

Откуда: 307cwam.ucoz.ru
Сообщений: 310
ПЕНСИОНЕРКА,
Ну так и как ЭТО СЛУЧАЙНОЕ ИМЯ подкаталога узнать?
Если оно случайное и заранее неизвестно?
---
Как прописать ссылку на рисунок в коде или поле?
Как ЭТО СЛУЧАЙНОЕ ИМЯ подкаталога переменной передать?
str = чему?
5 май 19, 17:36    [21878168]     Ответить | Цитировать Сообщить модератору
 Re: Путь/ссылка на файл внутри архива  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4482
Александр Маркин
Если оно случайное и заранее неизвестно?


первое, что пришло в голову
--прочитать оглавление C:\Users\Master 307\AppData\Local\Temp\ , это возможно
--запомнить имена подкаталогов
--запустит вашу распаковку
--опять прочитать оглавления, найти новое(появившееся имя, может и по времени создания)
--прочитать оглавление C:\Users\Master 307\AppData\Local\Temp\ттттттт\Рис1 (640х428).png
--если нашли --ОК"
--ИНАЧЕ РУГАТЬСЯ ИЛИ ИСКАТЬ В ПОДКАТАЛОГАХ C:\Users\Master 307\AppData\Local\Temp\ттттттт\
5 май 19, 19:00    [21878204]     Ответить | Цитировать Сообщить модератору
 Re: Путь/ссылка на файл внутри архива  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4482
после нахождения я бы переписывала в фиксированный каталог и брала уже из него
5 май 19, 19:08    [21878208]     Ответить | Цитировать Сообщить модератору
 Re: Путь/ссылка на файл внутри архива  [new]
andris2
Member

Откуда: Nijnekamsk
Сообщений: 17
Александр Маркин
Подскажите, а как

WinRAR поддерживает командную строку (в самой программе есть подсказки) и распаковывает туда, куда вы ему укажете.

Я так понимаю, задача стоит так: распаковать архив и посмотреть содержимое файла.
Если запустить архиватор с параметрами в командной строке в котором заранее задать путь, то все получится.
После того, как архиватор отработает команду, запускаете просмотрщик файла с учетом его расширения.
Нужно только поймать момент, когда архиватор завершит работу. Для этого есть процедуры ожидания окончания работы любой программы. Ищите, в инете есть примеры.
5 май 19, 20:58    [21878253]     Ответить | Цитировать Сообщить модератору
 Re: Путь/ссылка на файл внутри архива  [new]
Александр Маркин
Member

Откуда: 307cwam.ucoz.ru
Сообщений: 310
Да это всё получится.
Но интересует как добраться до файла без извлечения.
Касперский, например, как-то проверяет архивы без извлечения.
В темпе ничего не создается.
5 май 19, 21:22    [21878263]     Ответить | Цитировать Сообщить модератору
 Re: Путь/ссылка на файл внутри архива  [new]
andris2
Member

Откуда: Nijnekamsk
Сообщений: 17
Александр Маркин
Касперский, например, как-то проверяет архивы без извлечения.
В темпе ничего не создается.

Касперский анализирует байты. Ему незачем распаковывать архив
5 май 19, 21:38    [21878267]     Ответить | Цитировать Сообщить модератору
 Re: Путь/ссылка на файл внутри архива  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4482
Александр Маркин
В темпе ничего не создается


я в этом не уверена
возможно Каспер делает своего рода виртуальный диск и распаковывает поштучно , под одно имя на этот диск
как то ведь надо скорость получить
5 май 19, 22:10    [21878275]     Ответить | Цитировать Сообщить модератору
 Re: Путь/ссылка на файл внутри архива  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4169
Александр Маркин, win работает с архивом как с папкой, потому нужно использовать методы и свойства объекта Shell.Application.
Например, чтение содержимого архива
Sub ttest()
Dim objShell  As Object, objFolder As Object
Dim strZipName As String: strZipName = "ПолноеИмяТвоегоАрхива.zip"

Set objShell = CreateObject("shell.application")
Set objFolder = objShell.NameSpace(strZipName & "")  'strZipName & "" -так, потому, что нужно передавать по значению имя

    If (Not objFolder Is Nothing) Then
        Call ReadFolder(objFolder)
    End If
Set objFolder = Nothing
Set objShell = Nothing
End Sub

Private Sub ReadFolder(ByRef objFolder As Object)
Dim objItems As Object, objItem As Object

Debug.Print objFolder.Title

Set objItems = objFolder.Items()

    For Each objItem In objItems
        If objItem.IsFolder Then 'если айтем папка, то прочитаем её содержимое
            Call ReadFolder(objItem.GetFolder)
        Else
            Debug.Print objItem.Name
        End If
    Next objItem

Set objItem = Nothing
Set objItems = Nothing
End Sub


А вообще в сети очень много материала и он гуглится легко. В гугле забанили?

Вот полезная ссылка (там есть создание, разархивирование) - Работа с ZIP архивами средствами Windows XP
6 май 19, 04:59    [21878338]     Ответить | Цитировать Сообщить модератору
 Re: Путь/ссылка на файл внутри архива  [new]
982183
Member

Откуда: VL
Сообщений: 2829
Александр Маркин
Например: я открываю в архиве рисунок на просмотр, смотрю в его свойствах путь.

Вы запускаете некий файловый менеджер (Например Проводник)
"Открываете" архив - в это время менеджер считывает заголовок архива и предлагает список файлов архива в виде списка файлов.
"Открываете" рисунок - менеджер разархивирует конкретный файл во временный каталог и открывает его в программе просмотра
Так что "добраться до файла без извлечения" не получится.
6 май 19, 06:01    [21878345]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить