Это работает в Bash и Korn, также может идти от более высоких к более низким числам. Наверное, не самый быстрый или красивый, но работает достаточно хорошо. Также обрабатывает негативы.
function num_range {
# Return a range of whole numbers from beginning value to ending value.
# >>> num_range start end
# start: Whole number to start with.
# end: Whole number to end with.
typeset s e v
s=${1}
e=${2}
if (( ${e} >= ${s} )); then
v=${s}
while (( ${v} <= ${e} )); do
echo ${v}
((v=v+1))
done
elif (( ${e} < ${s} )); then
v=${s}
while (( ${v} >= ${e} )); do
echo ${v}
((v=v-1))
done
fi
}
function test_num_range {
num_range 1 3 | egrep "1|2|3" | assert_lc 3
num_range 1 3 | head -1 | assert_eq 1
num_range -1 1 | head -1 | assert_eq "-1"
num_range 3 1 | egrep "1|2|3" | assert_lc 3
num_range 3 1 | head -1 | assert_eq 3
num_range 1 -1 | tail -1 | assert_eq "-1"
}
См. Класс ZipFile в MSDN. Это показывает, что требуемая версия платформы - 4.5. После исправления версии фреймворка, вы добавили ссылку на сборку System.IO.Compression.FileSystem.dll
и добавили директиву using System.IO.Compression
в ваш класс.
Также необходимо сослаться на сборку System.IO.Compression.FileSystem.dll.
Просто для дальнейшего разъяснения предыдущих ответов, вот как добавить ссылки вручную:
<configuration>
<system.web>
<compilation targetFramework="4.5">
<assemblies>
<add assembly="System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
</assemblies>
</compilation>
</system.web>
</configuration>
Файлы можно найти в C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ и подпапках содержит необходимую информацию о версии, культуре и PublicKeyToken.
Вам необходимо изменить целевую структуру текущего проекта с .Net 4 на .Net 4.5.
Для Windows Phone 8.1 используйте NuGet, чтобы добавить пакет Microsoft Compression в свой проект и сослаться на него.
Если у вас был более старый проект WP8, возможно, вы использовали другой пакет, который создавал бы конфликты с dll System.IO.Compression, который является частью .NET 4.5, поставляемой с WP8.1. Вам нужно избавиться от этого и использовать Microsoft Compression, которая гармонично работает с .NET 4.5. Вот как я сюда попал!
Новые функции в .NET 4.5
Улучшения сжатия Zip для уменьшения размера сжатого файла. См. Пространство имен System.IO.Compression.
Добавьте сборку System.IO.Compression в качестве ссылки на ваш проект. Вы также можете обратиться к System.IO.Compression.FileSystem для доступа к трем методам расширения (из класса ZipFileExtensions) для класса ZipArchive : CreateEntryFromFile, CreateEntryFromFile и ExtractToDirectory. Эти методы расширения позволяют вам сжимать и распаковывать содержимое записи в файл.
Образец
const string zipFilePath = @"C:\apps\Sample Pictures.zip";
using (FileStream zipFileToOpen = new FileStream(zipFilePath, FileMode.Open))
using (ZipArchive archive = new ZipArchive(zipFileToOpen, ZipArchiveMode.Read)) {
foreach (var zipArchiveEntry in archive.Entries)
Console.WriteLine(
"FullName of the Zip Archive Entry: {0}", zipArchiveEntry.FullName
);
}
Ссылки:
http://msdn.microsoft.com/en-us/library/ms171868.aspx
http://www.tugberkugurlu.com/archive/net-4-5-to-support-zip-file-manipulation-out-of-the-box
В моем случае мне нужно было вручную удалить все ссылки на dll, которые начинались с System.IO.Compression , а затем добавить одну за другой нужные ( System.IO .Compression.FileSystem и т. Д.), Хотя я написал только одно выражение using
using System.IO.Compression;
. Надеюсь, это кому-нибудь поможет