Распакуйте ZIP-файл и извлеките содержимое папки с неизвестным именем

Мои пользователи будут архивировать файлы, которые будут выглядеть следующим образом:

TEMPLATE1.ZIP
   |--------- UnknownName
                   |------- index.html
                   |------- images
                               |------- image1.jpg

Я хочу распаковать этот zip-файл как следует:

/mysite/user_uploaded_templates/myrandomname/index.html
/mysite/user_uploaded_templates/myrandomname/images/image1.jpg

У меня проблема с UnknownName - я заранее не знаю, что это такое, и при извлечении всего до "базового" уровня все относительные пути в index.html разрываются

Как я могу извлечь из этого ZIP-файла содержимое из UnknownName?

Есть ли что-нибудь лучше, чем:

1. Extract everything
2. Detect which "new subdidrectory" got created
3. mv newsubdir/* .
4. rmdir newsubdir/

Если существует более одного подкаталога на уровне UnknownName, я могу отклонить zip-файл этого пользователя.

6
задан ajreal 29 November 2010 в 19:09
поделиться