最初に『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.batecho off echo 処理を開始しました powershell -NoProfile -ExecutionPolicy Unrestricted .\split_file.ps1実行すると、拡張子が オリジナルファイル名.001、オリジナルファイル名.002 というように連番で分割して作成されます。 結合は、copy コマンドを使用して行う事ができますcopy /b オリジナルファイル名.001 + オリジナルファイル名.002 オリジナルファイル名関連する記事 PowerShell : ファイルを開くダイアログを使うのに System.Windows.Forms を参照する二つの方法 PowerShell( 実質C# )を使用して、MessageBox の応答でバッチファイルの処理を変化させる
|
【PowerShell + C#の最新記事】
- nuget.exe CLI を使用してパッケージをダウンロードし、C# のソースコードで利用して PowerShell でビルドする
- PowerShell を使用して、C# のコンソールアプリ用のソースコードから exe を作成する( WebClient で wget.exe ) / ビルドせずに PowerShell で実行
- PowerShell で VisualStudio で作成した Form アプリケーションをビルドする( DataGridView に select 文の結果を表示する / MySQL )
- PowerShell で VisualStudio で作成した Form アプリケーションをビルドする( Form アプリケーションを テキストエディタのみで作成するテンプレート )
- TKMP + imap + C# + PowerShell : メールボックス(階層)の一覧表示
- nuget.exe + SMO + PowerShell + C# : テーブルの CREATE TABLE 文 を取得
- PowerShell( 実質C# )を使用して、MessageBox の応答でバッチファイルの処理を変化させる
- PowerShell で C# のソースコード(get_rec_mysql.cs) を使用して System.Data.Odbc で MySQL のデータを一覧表示( csv )