Ejemplo n.º 1
0
 private async void button4_Click( object sender, System.EventArgs e ) {
     var mergeParams = new MergeParams {
         BuiltInImg = chkBuiltinImg.Checked, DataSource = txtData.Text, DestImg = txtOut.Text, SourceImg = txtImg.Text
     };
     {
         string errorMessage = null;
         var error = false;
         if ( !File.Exists( mergeParams.SourceImg )
              && !mergeParams.BuiltInImg ) {
             error = true;
             errorMessage = "Source image not found";
         }
         else if ( !File.Exists( mergeParams.DataSource )
                   && !Directory.Exists( mergeParams.DataSource ) ) {
             error = true;
             errorMessage = "Source file/directory not found";
         }
         if ( error ) {
             MessageBox.Show( errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error );
             return;
         }
     }
     this.Enabled = false;
     await Merger.Merge( mergeParams );
     MessageBox.Show( "Merge complete!", "EMRJT", MessageBoxButtons.OK, MessageBoxIcon.Information );
     this.Enabled = true;
 }
Ejemplo n.º 2
0
 private static async Task MergeFile( MergeParams p ) {
     var zf = new FastZip();
     using ( var s = File.OpenWrite( p.DestImg ) ) {
         s.Seek( 0, SeekOrigin.End );
         zf.CreateZip( s, Path.GetDirectoryName( p.DataSource ), false, Path.GetFileName( p.DataSource ), "" );
     }
 }
Ejemplo n.º 3
0
 private static async Task MergeDirectory( MergeParams p ) {
     using ( var s = File.OpenWrite( p.DestImg ) ) {
         s.Seek( 0, SeekOrigin.End );
         var zf = new FastZip {
             CreateEmptyDirectories = true
         };
         zf.CreateZip( s, Path.GetDirectoryName( p.DataSource ), true, "*", Path.GetFileName( p.DataSource ) );
     }
 }
Ejemplo n.º 4
0
 private static async Task MergeArchive( MergeParams p ) {
     using ( var s = File.OpenRead( p.DataSource ) ) {
         var buf = new byte[s.Length];
         await s.ReadAsync( buf, 0, buf.Length );
         using ( var s2 = File.OpenWrite( p.DestImg ) ) {
             s2.Seek( 0, SeekOrigin.End );
             await s2.WriteAsync( buf, 0, buf.Length );
         }
     }
 }
Ejemplo n.º 5
0
 public static async Task Merge( MergeParams p ) {
     if ( File.Exists( p.DestImg ) )
         File.Delete( p.DestImg );
     if ( p.BuiltInImg )
         File.WriteAllBytes( p.DestImg, Properties.Resources.pixel );
     else
         File.Copy( p.SourceImg, p.DestImg );
     var dir = Directory.Exists( p.DataSource );
     if ( dir )
         await MergeDirectory( p );
     else {
         var fn = Path.GetExtension( p.DataSource );
         await ( ( new[] {
             ".rar", ".zip,"
         }.Any( a => a == fn ) ) ? MergeFile( p ) : MergeArchive( p ) );
     }
 }