2011年2月26日土曜日

[2007]予定表リストをOMによる更新

毎度忘れるので、メモメモ

オブジェクトモデルで予定表リストへ登録すると何故か9時間ずれるのですよね。
下記の様に、時間をUTCへ変換すればOKです。

SPSite site = new SPSite("http://server/");
SPWeb web = site.OpenWeb();
SPRegionalSettings oRegionalSettings = web.RegionalSettings;
SPTimeZone tz = oRegionalSettings.TimeZone;
DateTime start = DateTime(2011, 2, 26, 1, 30, 0, 0);
DateTime end = DateTime(2011, 2, 26, 2, 30, 0, 0);

SPListItem item = web.Lists["リスト"].Items.Add();
item["タイトル"] = "タイトル";
item["開始時刻"] = tz.LocalTimeToUTC(start).ToString("yyyy-MM-ddTHH:mm:ssZ");
item["終了時刻"] = tz.LocalTimeToUTC(end).ToString("yyyy-MM-ddTHH:mm:ssZ");
item["説明"] = "備考";
item.Update();

【参考URL】
http://msdn.microsoft.com/ja-jp/library/microsoft.sharepoint.sptimezone.localtimetoutc%28v=office.12%29.aspx

2011年2月12日土曜日

SharePoint成功の道標

image

ついに表紙が出来ました!

どちらかといえば、IT管理者向けの本かも知れません。
私はカスタマイズ章を担当させて頂きました。

カスタマイズ章ですが、Developerから見れば物足りないかもしれませんが、ITDM向けと言う事でお許しください。m(__)m

発刊日はもう言ってもOKなのかな?

3/25日発売!

タイトルの漢字間違い修正。。。

2011年2月11日金曜日

うーん、DotNetZIP文字化け

SharePointではないですが、結構悩んだのでポスト

DotNetZIPというライブラリをご存知ですか?
.Netアプリケーションのライブラリで、ZIPファイルの圧縮解凍などが出来ます。

しかし、なぜか、、日本語名ファイルを圧縮したZIPファイルを解凍すると、、文字化けします。
回避は簡単、ZIPライブラリのインスタンスを作成した後に、ZIPファイルを読み込めばOKです。

外人さんの作るライブラリなので、デフォルトの文字コードがS-JISではない事に起因する問題でした。
コンストラクタの中で、使用するエンコーディングとファイルの読み込み処理が実行されてるのですが、何故かZIPファイルのイニシャル処理の後、文字コードの設定をの設定を変更している為デフォルトの文字コードでイニシャル処理されてしまい文字化けする事が原因でした。

ライブラリは触りたくないので、下記の様にZIPファイルの読み込みはコンストラクタ以外で実装すると文字化けしなくなります。

using (Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile(Encoding.GetEncoding("shift_jis")))
{
    zip.Initialize(“C:\Temp\TEST.zip”);
    zip.UseUnicodeAsNecessary = true;
    foreach (Ionic.Zip.ZipEntry e in zip)
    {
        System.Console.WriteLine(e.FileName);
    }
}