SQLの窓

2018年06月12日


PowerShell( 実質C# )を使用して、ファイルの分割を行う

最初に『OpenFileDialog』でファイルを開くダイアログを表示して、そのファイルを1メガバイト(0x100000) のファイルに分割します。( ここでは、初期フォルダは C:\ )



split_file.ps1

readSize はバッファーに読み取られた合計バイト数で。 要求しただけのバイト数を読み取れなかった場合、この値は要求したバイト数より小さくなります。
$code = @"
using System;
using System.IO;
using System.Windows.Forms;
public class MyClass {
	public static void split_file() {


		OpenFileDialog obj = new OpenFileDialog();
		obj.Filter = "全て|*.*";
		obj.InitialDirectory = @"C:\";

		if (obj.ShowDialog() != DialogResult.OK) {
			return;
		}

		// 分割ファイルの拡張子の連番用
		int count = 0;

		// 入力ファイル
		FileStream fsi = new FileStream( obj.FileName, FileMode.Open, FileAccess.Read);

		// オリジナルファイル名
		string FileName = Path.GetFileName(obj.FileName);

		// 1メガバイト
		byte[] buffer = new byte[0x100000];
		// 読み込まれたサイズ
		int readSize;
		while(true) {
			// 読み込み
			readSize = fsi.Read(buffer, 0, buffer.Length);
			if (readSize == 0) {
				break;
			}
			count++;

			// 出力ファイル
			FileStream fso = new FileStream( string.Format("{0}.{1:000}", FileName, count),FileMode.Create,FileAccess.Write);
			fso.Write(buffer, 0, readSize);
			fso.Close();
		}
		fsi.Close();
	}
}
"@

Add-Type -Language CSharp -TypeDefinition $code -ReferencedAssemblies ("System.Windows.Forms")

[MyClass]::split_file()



inter_active.bat
echo off

echo 処理を開始しました

powershell -NoProfile -ExecutionPolicy Unrestricted .\split_file.ps1
実行すると、拡張子が オリジナルファイル名.001、オリジナルファイル名.002 というように連番で分割して作成されます。 結合は、copy コマンドを使用して行う事ができます
copy /b オリジナルファイル名.001 + オリジナルファイル名.002 オリジナルファイル名
関連する記事 PowerShell : ファイルを開くダイアログを使うのに System.Windows.Forms を参照する二つの方法 PowerShell( 実質C# )を使用して、MessageBox の応答でバッチファイルの処理を変化させる
posted by lightbox at 2018-06-12 00:00 | PowerShell + C# | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり