вы хотите использовать @Html.Raw(str)
См. MSDN для получения дополнительной информации
Возвращает разметку, не закодированную в формате HTML.
Этот метод переносит разметку HTML с помощью класса IHtmlString, который отображает незашифрованный HTML.
Что-то вроде:
#!/bin/bash
cd ~/basedir/files
for file in *.zip ; do
newfile=$(echo "${file}" | sed -e 's/^files.//' -e 's/.zip$//')
echo ":${newfile}:"
mkdir tmp
rm -rf "${newfile}"
mkdir "${newfile}"
cp "${newfile}.zip" tmp
cd tmp
unzip "${newfile}.zip"
find . -name '*.jpg' -exec cp {} "../${newfile}" ';'
find . -name '*.gif' -exec cp {} "../${newfile}" ';'
cd ..
rm -rf tmp
done
Это проверено и будет обрабатывать пробелы в именах файлов (как zip-файлы, так и извлеченные файлы) .
7zip может это сделать и имеет версию Linux .
mkdir files/archive1
7z e -ofiles/archive1/ files/archive1.zip *.jpg *.png *.gif
(Только что протестировал, работает)
Вы можете написать программу, используя zip-библиотеку. Если вы используете Mono, вы можете использовать DotNetZip .
Код будет выглядеть так:
foreach (var archive in listOfZips)
{
using (var zip = ZipFile.Read(archive)
{
foreach (ZipEntry e in zip)
{
if (IsImageFile(e.FileName))
{
e.FileName = System.IO.Path.Combine(archive.Replace(".zip",""),
System.IO.Path.GetFileName(e.FileName));
e.Extract("files");
}
}
}
}
Perl's Archive-Zip - хорошая библиотека для архивирования / разархивирования.
Вот мой вариант первого ответа ...
#!/bin/bash
cd files
for zip_name in *.zip ; do
dir_name=$(echo "${zip_name}" | sed -e 's/^files.//' -e 's/.zip$//')
mkdir ${dir_name}
7z e -o${dir_name}/ ${zip_name} *.jpg *.png *.gif
done
или, если вы просто хотите использовать обычная команда unzip ...
unzip -d ${dir_name}/ ${zip_name} *.jpg *.png *.gif
Я не тестировал это, но она должна работать ... или что-то в этом роде. Определенно более эффективно, чем первое решение. :)
Надеюсь, это поможет!