Project III - NTFS and C#
課題内容 (資料日本語意訳)
NTFS ボリュームの raw data を 読み、Master File Table の属性を dump するプログラムを C# で書いてください
まずは Visual
Studio 2005 日本語ベータ 1 をインストールしてください
もちろん Visual Studio をすでに持っている人はそれを利用してかまいません
ダウンロードには .Net passport ユーザ登録が必要です
次にマシン上に NTFS ボリュームおよび、それに対する administrator 権限でアクセスできることが必要です
(NT kernel の Windows マシンを所有していれば OK なはずです
によって 1024 バイトずつディスクから読み出し、ANSI text の "FILE" で始まるレコードを探します
これは普通 MFT エントリの中にあります
その後に続く詳細情報を使って、見つけたレコードのファイル名を出力してください
record 数が多すぎるので、検索数、表示数を制限してもかまいません
ファイル名を出力するには各レコード内で属性のリストをたどらなければなりません
次に各レコードの typecode とその他の情報も出力してみましょう
NTFS のフォーマット形式は公開されていませんが、Unix の inode 構造体と同じような基本構造をみることができるでしょう
提出内容
- C# プログラムソース
- NTFS ボリュームを読み、ファイル名を出力するプログラム
- NTFS ボリュームを読み、レコード情報を出力するプログラム
- プログラム内部仕様(プログラムの説明)
- プログラム外部仕様(動作環境, 実行方法)
- 実行例 (長すぎる場合は適宜省略してください)
- 考察 (特に Unix inode 構造体との比較は必ず行うこと)
- あれば感想(難易度, 興味深かった点, 苦労したりした点など)
提出方法
inagami@is.s.u-tokyo.ac.jp にメールで提出
ただし以下の形式を守ってください
- Subject は ms-report-3
- 本文最初に、所属、学生証番号、氏名を必ず明記
- プログラムソース以外はメール本文に text 形式で記述
- プログラムソースは学生証番号(半角数字)でフォルダを作り、その中に提出内容を入れ zip, lzh, cab, 7z のいずれかの形式で圧縮して添付
質問
inagami@is.s.u-tokyo.ac.jp までメールで質問して下さい
その際、Subject は ms-question とし、メール本文に所属、学生証番号、氏名とともに text 形式で記述して下さい
ただし、内容によっては返答に時間がかかる場合もあるかもしれません
Visual C# 2005 Express Edition Beta を使った C# によるプログラム作成
課題に最低限必要な Visual C# 2005 Express Edition Beta を使って C# によるプログラム作成方法を説明します
- 何はともあれ Visual C# 2005 Express Edition Beta を起動します
- 最初に登録うんぬんがでますが好きにしてください
- まずはプロジェクトを作成します
ファイル ⇒ 新規作成 ⇒ プロジェクト ⇒ コンソール アプリケーション を選択
ダイアログが開くのでプロジェクト名を適当に決めて OK をクリック
するとプロジェクトが作成され、Program.cs という C# ソースファイルがその中に生成され、開かれます
- このファイルに処理を C# で記述していきます
ここではためしに Main Method の中に
Console.WriteLine("Hello, World !");
|
という 1 行を追加してみます
- 記述が終了したら ファイル ⇒ ソリューションのビルド (F6) でプログラムをコンパイルします
このときソースコードにエラーがある場合はエラーメッセージが表示されるので、修正してから再コンパイルします
- コンパイルに成功したら デバッグ ⇒ 開始 (F5) でプログラムを実行することができます
さきほどのソースコードの例では、コンソールというウィンドウに
と表示されるはずです
参考 : 連載 改訂版 C#入門 の 1-1 C#で「Hello World!」
TOPへ戻る |