tsucchi’s diary(元はてなダイアリー)

はてなダイアリー(d.hatena.ne.jp/tsucchi1022)から移行したものです

C#

C# で mv する

C#

積ん読ならぬ、積んブログ。*1FileInfo クラスの MoveTo は、ディレクトリへの移動*2ができないのと、強制上書き*3ができないので、こんな感じの外部メソッドを使っている。 private void MoveToDir(DirectoryInfo dir, FileInfo file) { FileInfo target = …

C#でパスワードつきのexcel を扱う

仕事メモ。C# でパスワードつきの Excel を取り扱おうとして、Excel._Workbook(だっけ?) の HasPassword()を使ってみたら、Open 時にすでにパスワードを聞いてくるダイアログが上がってしまいダメ。Open 時に何とかするしかないなー、と思って MSDN 見ても…

C#でsubversion

ウチのチームの別のグループで、C#を使って開発をしているのですが、比較的人数が多いせいかプロジェクトファイルが頻繁に壊れてるみたいです。svn update した時にファイルが消えただとか、プロジェクトファイルがコンフリクトしただとか、あちこちから悲鳴…

C# の FTP で認証エラー

ちょっと前に、自分で書いた C# のアプリで FTP の送り先を変えたのだけど、それから散発的に FTP のエラーが発生して悩んでた。で、検索してみたら、こんなのが。 FTP受信中にエラー - Insider.NET おそらくは認証の問題です。 接続先サーバーもネットワー…

SQLite の DateTime

SQLite でDateTime 型のカラムに「2008/10/15」というデータを突っ込んだら取り出し時にエラーになった。。。びっくりした。インサート時にエラーにして欲しいよなぁ。。。環境は、インサート時は SQLiteManager で、取り出し側は System.Data.SQLite(C#)ね…

Nullable 型の ToString()

友人が mixi で「Nullable 型 で null なときに、ToString()を呼んだら ぬるぽ じゃなくて、""が返ってきてびっくりしたぜ」的なことが書いてたので、「おいおいそんなことないだろ」と思い、ちょっと書いてみました。 using System; using System.Collectio…

パスワードの生成

パスワードっぽい文字列を生成するクラスを書いた。static にしてるので、 string passwd = GenPass.Exec(); みたいに使います。perl モジュールのgenpassをそっくりそのまま移植したような感じ(つーかまるパクリ)。見間違いやすそうな、oとOと0とlと1とIあ…

ファイルのMD5チェックサムをとる

2つのファイルの差異を見たい、というか、「対象ファイルが違っていたら、上書きコピー」みたいな処理をしたいと思って、最初は単純にサイズだけ見てました。でも対象がバイナリファイル(Excelとか)だから、「サイズだけだとちょっと危ういかなぁ」と思い、…

C#で、ディレクトリが変更されたかどうかチェックする

うーん、ちょっとタイトル違うかな...。正確には、「対象のディレクトリが、変更されてから、引数で与えられた秒数よりも時間がたっているかどうかをチェックする」です。「あるアプリがローカルフォルダにコピーしたディレクトリを、リモートのフォルダにバ…

C#の空文(empty ステートメント)

if ( SomeCondition1() ) message = "some condition 1だよ〜ん"; //本当はマジメな文 else if ( SomeCondition2() ) ; //何もしない else message = "else だよ〜ん"; //本当はマジメな文 //... みたいなコードを書いたらコンパイラに怒られた。(警告)。調…

「アプリケーションの追加と削除」に記載されているプログラム名を取得する

ISO だか何だか知らんけど、会社では、インストールしたアプリケーションを届けないといけなくなった。めんどい。つーか、いちいち覚えてられないし、そもそも記憶ベースだと不正確だし。「Windows が覚えてるのなら、Windows にやらせればよくね?」と思っ…

CruiseControl.Net Part.2

以前、ちょっと書いたのですが、ccnet.config をちょっと見直してもう少し使いやすくなりました。こんな感じ。 <cruisecontrol> <project name="Project1" > <triggers> <scheduleTrigger time="09:10" buildCondition="ForceBuild" name="Scheduled" /> </scheduletrigger></triggers></project></cruisecontrol>

CruiseControl.NET

CruiseControl.NET を導入してみた。「CruiseControl の常時結合で、Agile な開発!」とか壮大なことを考えていたわけではないです。つーか基本的に一人開発だし。単に「svn add 忘れを防止したいなぁ」、というそれだけ。なので、ccnet.config も超単純。基…

ODP.NET の接続文字列

表題のやつ。 意外と簡単!? .NETでOracle -OTN Japan ODP.NETでは、通常であれば、tnsnames.oraファイルに記述する内容をアプリケーション・コード内に記述することが可能です。 つまり、こんな感じに書いていい。 string connectionString = @"User ID=Scot…

インストーラの作成

今まで、自作アプリをインストールするときは、単純にファイルコピーしていました。けれども、ファイル数が増えてくると手順が煩雑だし、それを手順書に書くのはもっと嫌なので、「インストーラを作ったら簡単じゃね?」と思ってやり方を調べてみました。 意…

C# で touch(空ファイルを作成)する2つの方法

昨日の訂正記事です。C# で空ファイルを作るには、StreamWriter を使う方法と File.Create() を使う 2 つの方法があります。 やっていることはどちらも同じ。 StreamWriter を使う方法 private void Touch(string path) { if ( !File.Exists(path) ) { Strea…

C# で touch(空ファイルの作成)

空ファイルを作るとき、File/FileInfo の Create() は使ってはいけない。StreamWriter を使って、空ファイルを作るのが良さそう。こんな感じ。 private void Touch(string path) { if ( !File.Exists(path) ) { StreamWriter toucher = new StreamWriter(pat…

Subversion を C# で

C# とかの開発で、今まで VSS を使っていたのを Subversion に移行しています。ちょっとハマったり、困ったこともあったけど、何となくコツが分かってきたのでメモ。ASP.NET はまだやってないので、追加すべきものがもっと増えるはず。(*.aspx が必要なこと…