#freeze
[[FrontPage]]
これは.NET4.5以上だから、Visual Studio2010Expressではそのままでは動かないわ。2013以上ならいけるかな、ここ要注意ね。
* 書き方 [#yd7b65e8]
using System.IO.Compression;
:
:
:
ZipFile.CreateFromDirectory(directory名, datafile名.zip);
:
:
* 用例 [#cf6fa29b]
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace _2013ftp1
{
class Program
{
/// <summary>
/// loadfile
/// </summary>
/// <param name="fn"></param>
/// <returns></returns>
private static string loadfile(string fn)
{
string text = "";
try
{
StreamReader sr = new StreamReader(fn, Encoding.GetEncoding("Shift_JIS"));
text = sr.ReadToEnd();
sr.Close();
}
catch (Exception e) // 例外
{
text = e.Message;
}
return (text);
}
/// <summary>
/// ディレクトリ定義を置き換える。
/// </summary>
/// <param name="dir"></param>
/// <returns></returns>
private static string dirfilter(string dir)
{
string r = dir;
// Desktop をユーザーデスクトップに置き換える。
r = Regex.Replace(r, @"Desktop", System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), RegexOptions.IgnoreCase);
// MyDocuments をユーザーのマイドキュメントに置き換える。
r = Regex.Replace(r, @"MyDocuments", System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), RegexOptions.IgnoreCase);
return (r);
}
static void Main(string[] args)
{
string username = "";
string password = "";
string servername = "";
string localdir = "";
string remotedir = "";
string datafile = "webdata.zip";
if (args.Length == 1)
{
string fn = args[0];
if (File.Exists(fn) == true)
{
try
{
string[] s = Regex.Replace(loadfile(fn), @"\r", "", RegexOptions.IgnoreCase).Split('\n');
username = s[0];
password = s[1];
servername = s[2];
localdir = dirfilter(s[3]);
remotedir = s[4];
}
catch (Exception ex)
{
}
// 必要なデータが揃ったならば、処理を開始する。
if (username != "" && password != "" && servername != "" && localdir != "" && remotedir != "")
{ // 必要なデータがそろっている。
// ローカルディレクトリを圧縮する。
Directory.SetCurrentDirectory(localdir);
Directory.SetCurrentDirectory("..");
string[] dir = localdir.Split('/');
string dx = dir[dir.Length - 1];
try
{
ZipFile.CreateFromDirectory(dx, datafile);
}
catch (Exception ex)
{
}
}
}
}
}
}
}