私はいくつかのフォルダを持っており、各フォルダにはファイル数があります。 異なるフォルダからいくつかのファイルパスを取得しています。これらのファイルを1つのzipファイルに圧縮する必要があります。C# - ファイルパスのリストからZIPファイルを作成
私は単一のフォルダ内のファイルを持っている場合、私は
string startPath = @"c:\example\start";//folder to add
string zipPath = @"c:\example\result.zip";//URL for your ZIP file
ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true);
string extractPath = @"c:\example\extract";//path to extract
ZipFile.ExtractToDirectory(zipPath, extractPath);
using (ZipArchive newFile = ZipFile.Open(zipName, ZipArchiveMode.Create))
{
foreach (string file in Directory.GetFiles(myPath))
{
newFile.CreateEntryFromFile(file);
}
}
を使用したzipを行うことができますが、私は私が通過するforeachする必要がある、私は唯一のファイルパスのリストを持って、フォルダのことは知らないと仮定します各ファイルのパスとzipに追加します。これに対して私は何をすべきですか?
そのないサブdirectriesに関する仕事をしたりしません私はどのようにジップを作成できますか? –
@hildasonicaはyor問題を理解できません。 [CreateEntryFromFile](https://msdn.microsoft.com/en-us/library/hh485720(v = vs.110).aspx)は、2番目のパラメータでアーカイブ内のファイル名を操作できます。フォルダ構造のコピーが必要な場合は、それを無視するか、必要に応じてソースファイルpathesを変更することができます。 –
上記のコードでは、GetFilesというメソッドを使用して、規則的なフォルダからすべてのファイルを取得しています。私の場合、データベースから取得するファイルパスのリストが表示されます。これらのファイルパス(またはfieurl)を使用して、私はzipを作成する必要がある、私はここでGetFiles()メソッドを使用することができないと思う。 –