2007年9月26日水曜日

アプリケーションの作業フォルダの取得

ディレクトリ削除時に例外が発生した事から
アプリケーションの現在の作業ディレクトリの取得方法を
調べたので残しておきます。

まず発生したメソッドです。
System.IO.Directory.Delete(String)時に IOException が発生した。
MSDNで調べた結果原因は以下通り
1、同名のファイルが存在する
2、アプリケーションの現在の作業ディレクトリである

今回は2の原因だったので
作業ディレクトリ取得方法を調べました。

※補足
1の場合は以下のメソッドで確認しておけば大丈夫なはず。
Directory.Exists(String)

----
// アプリケーションの現在の作業ディレクトリの取得
System.IO.Directory.GetCurrentDirectory()

// ついでに設定方法も
System.IO.Directory.SetCurrentDirectory(String)
----


.

2007年9月14日金曜日

古いメソッドが使われないように警告を出す

ObsoleteAttribute:メソッドや変数を使うとコンパイル時に警告を出してくれる。

リファクタリングを行った後に、
同じ動きを別の手段を使えば出来るようになったメソッドが出たが、
影響範囲が広いため、変更する時間が無かった。
その事を他の人に言葉で伝えたとしても間違って使うかもしれない。

そこで何かないかな~と探した結果
ObsoleteAttribute という属性を発見した。

この属性を付けておけば、
使って欲しくないメソッドを使ってコンパイルすると警告を出してくれます。
またメッセージも添えれるので、新しいメソッドを使ってもらうように促す事も可能。

めちゃ便利です。

使い方はこんな感じ。
----------
using System;

[ObsoleteAttribute("適当なメッセージ")]
bool function(); // 関数の宣言
----------

もしくは
----------
using System;

// 第二引数をfalseでWarning扱い trueにするとエラーになりコンパイルできなくなります。
[ObsoleteAttribute("適当なメッセージ", false)]
bool function(); // 関数の宣言
----------

#第二引数をtrueにするぐらいなら削除するべきな気もするけど...

.

2007年9月7日金曜日

使っているFireFoxアドオン集

FireFoxを使い始めてそろそろ1年が経ちました!
使ってて便利だったアドオン(拡張機能?)を紹介します。

■All-in-Gestures
真っ先に入れたアドインがこれ。
マウスジェスチャーで新しいタブを開いたり
ページの[戻る]、[進む]が出来るようになります。

■IE Tab
FireFox上でIEのエンジンで表示してくれます。
IEでしか表示出来ないサイト等もこれがあれば
わざわざIEを起動しなくても大丈夫!

■FoxyProxy
Proxyサーバーを簡単に切り替えれるもの

■Greasemonkey
サイト毎の読み込み時にJavascriptを起動してくれるアドオン
これがあればかなりいろんなことが出来ます!

■Daily Dilvert
暇つぶしや気分転換に読んでます。
英語の勉強がてら入れたのですが、面白いのでお気に入りですw

↓はwebアプリ作成時に使っています。
■FireBug
Javascriptのデバッガ。

■WebDeveloper
webアプリ開発者向けのアドオンみたいですが。。
画面みながらスタイルシート更新できたり、
div タグの id 属性や class 属性を表示できます。

■Live HTTP Headers
HTTP headerを見ることが出来る
間違ったデータを送信していないか?
ちゃんとPOSTで送信しているか?
取得したデータは正しいかなど確認できます。


他にも便利なアドオンが多々あると思いますので探してみてください。

.

2007年9月6日木曜日

ファイルを読み取り専用にする(.NET)

ファイルを読み取り専用にする

-----
String path = new String("C:\hogehoge\hoge.txt");
System.IO.File.SetAttributes(path , System.IO.FileAttributes.ReadOnly);
-----

他にも
第二引数の System.IO.FileAttributes を変更すれば
Hidden で隠しファイル
Direcotry でフォルダ
に出来ます。

また、System.IO.FileInfo クラスのインスタンスを生成することよって
ファイルに対するより詳細な操作が可能となります。

.

2007年9月5日水曜日

環境変数の取得(.NET)

環境変数の取得方法

指定して取得する。
USERPROFILEの環境変数の値を取得する場合
----
String str = System.Environment.GetEnvironmentVariable(L"USERPROFILE");
----

全ての環境変数を取得する場合
----
IDictionary dic = System.Environment.GetEnvironmentVariables()
foreach (DictionaryEntry data in dic ) {
System.Console.WriteLine("{0} = {1}", data.Key, data.Value);
}
----

.

L Sharp .NET (Lisp.NET?)

Lispで .NetFrameWorkを使えるというもの
■L Sharp .NET
http://www.lsharp.org/

Lispの基礎もしらんけど
とりあえずやってみた。

TextBoxとButtonが1つあるFormを作成。
------
(reference "System.Windows.Forms")
(reference "System.Drawing")
(reference "System")

(using "System")
(using "System.Windows.Forms")
(using "System.Drawing")

(= textbox1 (new TextBox))
(call set_Text textbox1 "textbox")

(= button1 (new Button))
(call set_Location button1 (new Point 100 100))
(call set_Text button1 "Button")

(= form1 (new Form))
(call set_Text form1 "title")
(call add (call Controls form1) textbox1)
(call add (call Controls form1) button1)

; apprication start
(call EnableVisualStyles Application)
(call Run Application form1)
------

関数型言語。
どことなーく気持ち悪い...しっくりこない
もう少し遊んでみようかな~。
.

ラベル