atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
プログラミング図書館・本館
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
プログラミング図書館・本館
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
プログラミング図書館・本館
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • プログラミング図書館・本館
  • .NET
  • ファイルシステム

ファイルシステム

最終更新:2011年02月14日 15:01

atachi

- view
管理者のみ編集可
  • Reader/Writer
    • テキストファイルの入出力 [#n9391834]
    • バイナリファイルの入出力 [#h060edc2]
      • 画像の簡単な読み込み方法
  • Stream
    • ネットワークストリーム [#oa36d57d]
  • ドライブ
    • ドライブの一覧を取得 [#p3ee1033]
    • ドライブ容量を取得 [#n639e4b0]
  • ファイル
    • ディレクトリ内のファイル一覧の取得 [#qe6320c6]
    • ディレクトリ内のディレクトリ一覧の取得 [#ud13f038]
    • ディレクトリの作成 [#sba8cc2a]
    • サブディレクトリの作成 [#i5ffbb1c]
  • 特殊ファイルやフォルダ
    • 取得可能な特殊フォルダ [#vdbb3cf4]

Reader/Writer

用途 読み込み 書き込み 生成方法 解説
文字列 StringReader StringWriter コンストラクタ 内部はStringBuilder(StringWriterについて)
ストリーム StreamReader StreamWriter コンストラクタ ローカルファイルならば単体での読み書きが可能

テキストファイルの入出力

ファイルへの書き込みにはStreamWriter、ファイルからの読み込みにはStreamReaderを使用します。

// ◆ファイルへの書き込み
using(StreamWriter iowriter = new StreamWriter(@"c:\test.txt")){
	iowriter.WriteLine("1行分の書き込み"); // WriteLine()では自動的に末尾に改行コードが追加されます。
}
 
// ◆ファイルからの読み込み
using(StreamReader ioreader = new StreamReader(@"c:\test.txt")){
	var oneline = ioreader.ReadLine(); // 1行分(正確には、文頭から改行コードまで)を読み込みます。
 
	Console.WriteLine(oneline);
}

バイナリファイルの入出力

画像の簡単な読み込み方法

画像を読み込むにはIOを使うかGDI+がサポートするImage.FromFileメソッドを使用します。
Image.FromFileメソッドを使用するとファイルパスを与えるだけで画像を読み込むことができます。
ただし、読み込むことができる画像形式はGDI+がサポートするフォーマットの画像のみです。

using System.Drawing;
 
Image image = Image.FromFile(@"C:\myimg.jpg");

Stream

様々な経路からの入出力をストリームと呼び、入出力を行う基本的なインターフェースがInputStream・OutputStreamです。
経路にはファイルやコンソール、ネットワークなどが存在します。

経路から任意の構造でデータを読み書きするインターフェースをReader・Writerと呼びます。

Reader・Writerとストリームは組み合わせて使用します。

ネットワークストリーム

ネットワーク上からの入出力を行うためのStreamです。

  • NetworkStream
  • Socket

ドライブ

ドライブの一覧を取得

class Program {
	static void Main(string[] args) {
		string [] drives = Directory.GetLogicalDrives();
 
		foreach (string str in drives) {
			System.Console.WriteLine(str);
		}
 
		System.Console.ReadLine(); // プロンプトが自動的の閉じるのを防止
	}
}
C:\
D:\
E:\

ドライブ容量を取得

class Program {
	static void Main(string[] args) {
		DriveInfo info = new DriveInfo("C");
		Console.WriteLine("領域サイズ:" + info.TotalSize);
		Console.WriteLine("空き容量:" + info.TotalFreeSpace);
		Console.WriteLine("現在ユーザーの空き容量:"
		  + info.AvailableFreeSpace);
 
		System.Console.ReadLine();
	}
}
容量サイズ:785341698
空き容量:451357834
現在ユーザーの空き容量:451357834

ファイル

ディレクトリの操作や情報はDirectoryInfoを使用します。

ディレクトリの有無 Directory.Exists
ディレクトリ内のファイル一覧 Directory.GetFiles(string)
Directory.GetFiles(string,string) パターンマッチ
サブディレクトリも検索対象とする機能もあります。
ディレクトリ内のディレクトリ一覧 Directory.GetDirectories(string)
Directory.GetDirectories(string,string) パターンマッチ
サブディレクトリも検索対象とする機能もあります。
ディレクトリ作成 Directory.CreateDirectory
ディレクトリ削除 Directory.Delete
ディレクトリ移動 Directory.Move
ファイルの有無 File.Exists
ファイル作成 File.Create
ファイル削除 File.Delete
ファイル移動 File.Move
ファイルコピー File.Copy
拡張子取得 Path.GetExtension(string) 拡張子は「.txt」のように取得できる。
ファイル名部分の取得 Path.GetFileName フルパスなどからファイル名部分のみを取得する。

ディレクトリ内のファイル一覧の取得

次の方法はディレクトリ内のファイルのみをリストアップします。

class Program {
	static void Main(string[] args) {
		DirectoryInfo directory = new DirectoryInfo( @"C:\");
 
		FileInfo [] files;
		files = directory.GetFiles();
 
		foreach (FileInfo fi in files) {
			Console.WriteLine(fi.FullName);
		}
 
		System.Console.ReadLine();
	}
}
C:\.rnd
C:\AUTOEXEC.BAT
C:\boot.ini
C:\bootfont.bin

DirectoryInfo.GetFiles は引数に検索条件を含めることができるので、テキストファイルだけをリストアップするといった処理も行える。

class Program {
	static void Main(string[] args) {
		DirectoryInfo directory = new DirectoryInfo( @"C:\");
 
		FileInfo [] files;
		files = directory.GetFiles("*.ini"); // iniファイルのみ
 
		foreach (FileInfo fi in files) {
			Console.WriteLine(fi.FullName);
		}
 
		System.Console.ReadLine();
	}
}
C:\boot.ini

ディレクトリ内のディレクトリ一覧の取得

class Program {
	static void Main(string[] args) {
		DirectoryInfo directory = new DirectoryInfo( @"C:\");
 
		DirectoryInfo [] dirs;
		dirs = directory.GetDirectories()();
 
		foreach (DirectoryInfo di in dirs) {
			Console.WriteLine(di.FullName);
		}
 
		System.Console.ReadLine();
	}
}

ディレクトリの作成

ディレクトリが存在しない場合にのみディレクトリを作成します。

class Program {
	static void Main(string[] args) {
		DirectoryInfo directory = new DirectoryInfo(@"C:\Test");
		if(directory.Exists()){
			directory.Create();
		}
	}
}

サブディレクトリの作成

この例ではすでに存在するディレクトリにサブディレクトリを作成します。

class Program {
	static void Main(string[] args) {
		DirectoryInfo directory = new DirectoryInfo(@"C:\Test");
 
		DirectoryInfo subDirectory = directory.CreateSubdirectory("Test Directory");
	}
}

特殊ファイルやフォルダ

特殊なフォルダとは、デスクトップやマイドキュメントなどのユーザーごとに環境設定で変更可能なフォルダやProgramFilesなどのシステムが使用するフォルダを指します。

取得可能な特殊フォルダ

Environment.SprcialFolder列挙体 で定義されています。

定義名 取得パス(サンプル) 説明
Personal C:\Users\XXXX\My Documents マイドキュメントを取得します。
Desktop C:\Users\XXXX\Desktop デスクトップを取得します。
Favorites C:\Users\XXXX\Favorites お気に入りを取得します。
ProgramFiles C:\Program Files プログラムフォルダを取得します。
Windows C:\Windows ウィンドウズフォルダを取得します。
Startup スタートアップフォルダを取得します。
System.Environment.GetFolderPath(Environment.SpecialFolder.Personal); // マイドキュメントを取得
「ファイルシステム」をウィキ内検索
LINE
シェア
Tweet

[Amazon商品]


プログラミング図書館・本館
記事メニュー

C#

  • 新機能
  • 言語文法
    • 型
    • 関数
    • クラス
    • 演算子
    • 構文
    • デリゲート
    • イベント
    • 例外処理
    • アトリビュート
    • 名前空間
    • ジェネリクス
  • リフレクション
  • LINQ

.NET Frameworks

  • 数値
  • 文字列
  • 日付時刻
  • オブジェクト
  • コレクション
  • ファイルシステム
  • スレッド
  • データテーブル
  • グラフィックス
  • デバッグ
    • ログ出力
    • ユニットテスト
  • ユーティリティ
  • ネットワーク
    • HTTP
  • デバイス
    • COMポート
  • EntityFrameworks
    • Code First Programming Model
  • デバイスドライバ
    • WinUSB

WPF

  • XAML
  • イベント
  • コマンド
  • スタイル
  • データバインディング
  • コンポーネント
  • グラフィックス
  • カスタムコンポーネント
    • 依存関係プロパティ

アプリケーション

  • 二重起動の防止
  • アンマネージドDLLの読み込み
  • 外部のアプリケーションを起動

VisualStudio

  • 拡張機能
  • カラー設定

ライブラリ

  • WPFToolkit
  • A Fast CSV Reader
  • AvalonDock

実装方法

  • ドラッグアンドドロップ
  • アプリケーション内のドラッグアンドドロップ
  • CSVからDataTable

minecraft

  • Bukkit
  • プラグイン
    • Permissions
    • SlowHealth
    • CookieMonster
    • iConomy
    • WorldGuard
    • Lockette
    • MyHome
    • BorderGuard

サイトについて

プロフィール/リンク/未分類

メモ/ゲーム/Stacks/Omoikane


更新履歴

取得中です。

ここを編集

記事メニュー2

読んでいる本


Effective C#

QLOOKアクセス解析

ここを編集

人気記事ランキング
  1. CSVからDataTable
  2. 例外処理
  3. .NET/WinUSB
  4. アプリケーション内のドラッグアンドドロップ
  5. iConomyプラグイン
もっと見る
最近更新されたページ
  • 5045日前

    Bukkit
  • 5051日前

    トップページ
  • 5072日前

    メニュー
  • 5082日前

    WPF/グラフィックス
  • 5082日前

    .NET/グラフィックス
  • 5082日前

    .NET/グラフィックス/画像の書き込み
  • 5082日前

    .NET/グラフィックス/画像の読み込み
  • 5088日前

    .NET/コレクション
  • 5106日前

    .NET/WinUSB
  • 5141日前

    BorderGuardプラグイン
もっと見る
人気記事ランキング
  1. CSVからDataTable
  2. 例外処理
  3. .NET/WinUSB
  4. アプリケーション内のドラッグアンドドロップ
  5. iConomyプラグイン
もっと見る
最近更新されたページ
  • 5045日前

    Bukkit
  • 5051日前

    トップページ
  • 5072日前

    メニュー
  • 5082日前

    WPF/グラフィックス
  • 5082日前

    .NET/グラフィックス
  • 5082日前

    .NET/グラフィックス/画像の書き込み
  • 5082日前

    .NET/グラフィックス/画像の読み込み
  • 5088日前

    .NET/コレクション
  • 5106日前

    .NET/WinUSB
  • 5141日前

    BorderGuardプラグイン
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  2. まどドラ攻略wiki
  3. MadTown GTA (Beta) まとめウィキ
  4. R.E.P.O. 日本語解説Wiki
  5. シュガードール情報まとめウィキ
  6. ソードランページ @ 非公式wiki
  7. ヒカマーWiki
  8. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  9. Dark War Survival攻略
  10. AviUtl2のWiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  5. 初音ミク Wiki
  6. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  7. 検索してはいけない言葉 @ ウィキ
  8. 発車メロディーwiki
  9. Abiotic Factor 日本語攻略Wiki
  10. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
  3. モンスター一覧_第2章 - モンスター烈伝オレカバトル2@wiki
  4. 無幻銃士ダルタン - モンスター烈伝オレカバトル2@wiki
  5. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  6. 機体一覧 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  7. 邪神アラキシュ - モンスター烈伝オレカバトル2@wiki
  8. 女神アルテミス - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  9. オオヘビヌシノミコト - アニヲタWiki(仮)
  10. 機将アクセラ - モンスター烈伝オレカバトル2@wiki
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.