gfast-copy (Graphical Fast Copy)

Introduction

gfast-copy is a graphical fast single chunk file copy program.

gfast-copy is based on an very fast file copying algorithm.

gfast-copy package embed a command-line tool which does the same.


gfast-copy version 1.0 dependencies:


gfast-copy is written according the UNIX spirit:

A single program which perform a single task but do it well.

And may be conform to the POSIX (Portable Operating Systems Interafce X for Unix) standard.


Screenshots

Description:

gfast-copy (Graphical Fast Copy)

The gfast-copy program icon

Presentation

The little story of gfast-copy

I used to copy video files (films) from the right to the left and from the left to the right.

And by doing so I have remark the operating system does it not fast enough.

So I always have to wait...


So I though to delegate the copying task to a binary.


I have read a GNU manual which said that a program which perform a task using a G.U.I (Graphical User Interface)

should does the same using the command-line

From this idea is born the gfast-copy package

The copy algorithm

  1. At first the program will check for the best buffer size:
    
      Using file streams: it will look up the BUFSIZ constant if it’s great enough else the program set it to 8192 octets.
      Using syscalls it will look up the the st_blocksize from the stat() function and set it as buffer size.
    
      Then it will define a buffer with the optimal size.
      It will copy the source file to the destination in a loop using the defined buffer.
      Finally it will synchronize the file-system using fflush() or fsync().
    

  2. Then it create a buffer from the computed size.

  3. It will copy the source file to the destination in a loop using the defined buffer.

  4. Finally it will synchronize the file-system using fflush() or fsync().
Summary

The program search the optimal buffer size. Create a buffer and copy the file using FILE streams

or syscalls which you can enable into the command-line tool.

  • Per default the programs use FILE streams.

Graphical User Interface description

You have vertically align buttons:

Source

Use the Source labeled button to set the file to copy (Ctrl + S).

This will display the basename of the file to copy onto the button.

Destination

Use the Destination labeled button to set the file destination (Ctrl + D).

This will display the basename you have choose for the destination file.

And they are 2 icons buttons aside the 2 files buttons above:

And at the bottom of the interface lay a progress-bar.


note: Take a look at my self-builded GtkSmartIconButton widgets contains in to the source.

Once the copying done,

a top-level window will notify about the operation success and

the buttons will be reset original to their original strings and icons.

Menu bar

You get a menu bar too with few menu buttons.

  1. Files

    • Files --> Set source file (Ctrl + S).

    • Files --> Set destination file (Ctrl + D).

    • Files --> Run copying (Ctrl + Return).

    • Quit (Ctrl + Q).

  2. Configuration

    • Configuration --> Light theme.

    • Configuration --> Dark theme.

    • these are radio-buttons to choose your favorite theming.

    • Configuration --> Delete source file (Ctrl + R).

  3. Info ?

    • Info ? --> Read me (Ctrl + N).

    • Info ? --> About (Ctrl + A).

fast-copy command-line tool description

 $ fast-copy -h
fast-copy - a fast chunk file copy program.

Usage : fast-copy -r input-file -w output-file [-o] [-e] [-s] [-h]

        -r Read from file (required).
        -w Write to file  (required).
        -o Overwrite destination file (optional).
        -e Erase source file (optional).
        -s Use syscalls instead of streams (optional only UNIX).
        -h Print this help message.

- Copyright (©) 2017 Brüggemann Eddie >mrcyberfighter@gmail.com< GPLv3.
$


Documentation:


On-line notice:

Download notice:

gfast-copy html doc:

gfast-copy pdf doc:



Files and useful links:

  • Windows (>=7) 64 bits.


  • debian package file.  

    • gfast-copy-1.0-noarch.deb

    • Use gdebi (in preference) or dpkg to install the debian package !

    • sudo gdebi gfast-copy-1.0-noarch.deb   # gdebi resolves dependencies.
      sudo dpkg -i gfast-copy-1.0-noarch.deb # dpkg doesn't resolves dependencies.

  • RPM package file.  

    • gfast-copy-1.0-1.noarch.rpm

    • NOTE: If you get all requirements installed but the rpm program refuse to install gfast-copy: try the --nodeps switch.


  • Tarball file containing the sources from gfast-copy: An autotool implemented building system (GNU/Linux and POSIX Compliant systems).


  • To install on GNU/Linux and POSIX compliant systems simply type:
    $ ./configure
    $ make
    $ make strip # Remove all unneeded symbols
    $ sudo make install
    

    This tarball was tested and works on following systems:

    1. GNU/Linux (Ubuntu 17.04 and Debian Jessie)

    2. MSYS2 (latest release the 20/10/2017)

    3. Cygwin (latest release the 20/10/2017)

    4. MacOSX Sierra 10.12


  • github repository:

Credits

Program:gfast-copy
Versions:1.0
Platform:GNU/Linux, Windows and MacOSX.
Synopsis:a graphical fast single chunk file copy program. the gfast-copy package provides a command-line tool which does the same.
Licence:GPLv3.
Author:Eddie Brüggemann mrcyberfighter@gmail.com
Thanks:Thanks to my beloved mother, my family and to the doctors.
Advice:Stay away from drugs: drugs destroy your brain and your life.
Thanks:Special thanks to the gnome-bugzilla team because they help me to provide you an auto-extractable Windows *.exe file.