最初に『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 )


split_file.ps1




