Giter VIP home page Giter VIP logo

fastcopy's Introduction

Frame 8 FastCopy

A GUI wrapper for Windows' built-in robocopy and xcopy.

Features

  • Easy to use copy/paste/move/delete dialog, just like your good old explorer, but much faster🚀

  • Support the new Windows 11 context menu, and the old windows context menu, with the fluent design icon adapted to Light/Dark theme

  • Integration with Windows Notification Center: a notification toast will pop up when the copy is finished

  • Speed graph

  • Confirmation Dialog

  • Integration with taskbar: a progress bar sync with the one inside the window

  • Settings

  • Multi-language support
    • English
    • 中文

Installation (before publish to Microsoft Store)

  1. Go to the Release Page, download the zip file in the Asset section of the latest version
  2. Unzip, double-click to open the certificate file ended in .cert, click Install Certificate. Choose Local Machine in the dialog, click Next
  3. Choose Place all certificates in the following store, click Browser, and in the dialog choose Trusted root certification authorities
  4. Then click Next and finally Finish to install the certificate.
  5. Now you can double-click the msix to install the app. 6*. In rare situations, you might need to restart explorer.exe to see FastCopy in the right-click context menu

Usage

  1. Using file explorer, select some files/folders, as many as you want >> right click >> move to FastCopy >> select Copy or Move
  2. Go to destination folder, right click at empty space >> move to FastCopy >> select Paste

Development

Project structure

FastCopy
    FastCopy\               --- Main project
    FastCopyShellExtension\ --- A dll project for registering the new Windows context menu
    SpeedTest\              --- A speed test project for measuring various copying method under Windows
    UnitTest\               --- Unit test for above projects
    FastCopy.sln            --- The solution file for all the projects

Build pre-requisites

  • Visual Studio 2019+, with C++20 support & Universal Windows development workload
  • Windows App Sdk, with C++ template
  • Additional dependencies per project:
    • FastCopy:
      • spdlog
      • boost-algorithm
    • SpeedTest:
      • abseil
      • ftxui
      • cereal

vcpkg is the recommended package manager to handle these dependencies. You can install them with one command, and do no more.

vcpkg install boost-algorithm:x64-windows
vcpkg install spdlog:x64-windows
vcpkg install abseil:x64-windows
vcpkg install ftxui:x64-windows
vcpkg install cereal:x64-windows

Other component comes from my very own WinUIEssentials, which will be installed automatically by Visual Studio nuget.

Known issue

  • App crash after the window closed (does not affect users, low priority)

Recommendation

Please install the Child Process Debugger, so that the debugger would break at the copying process (after you launch the settings process). That is, you run the program first (so it goes into settings), then copy-paste a file, then the debugger will break automatically. Strongly recommended!

Translation

For contribution to translation, there are 2 places to be translated:

  • The main project, in FastCopy/Strings/<language>/Resources.resw
  • The shell extension project, in FastCopyShellExtension/CopyOperationNames.cpp CopyOperationNames::GetInstance()

Prototype

Figma link, you may need to ask for permission.

image

image

Behind the scene

Parsing robocopy output

  1. New file line has the form of this
New File  		     485	CMakeLists.txt	20:58 -> 20:58

This can be matched with staring with New File and containing 4 segments after split with \t

std::string_view{line}.starts_with("New File");
std::vector<absl::string_view> v = absl::StrSplit(s.data(), "\t", absl::SkipEmpty()); 
/*
    New File
    485
    CMakeLists.txt
    xx:xx -> xx:xx
*/
  1. New folder line has the form of this
New Dir       2000	D:\computecpp-sdk\.git\refs\

This can be matched with starting with New Dir and containing 2 segments after split with \t (the spacing between New Dir and number are spaces, not \t)

std::string_view{line}.starts_with("New Dir");
std::vector<std::string> splitted = absl::StrSplit(absl::string_view{ line.data(), line.length() }, "\t", absl::SkipEmpty());
/*
    New Dir       2000
    D:\computecpp-sdk\.git\refs\
*/
std::pair<std::string, std::string> count = absl::StrSplit(splitted[0], "  ", absl::SkipEmpty());
/*
    New Dir
    2000
*/

fastcopy's People

Contributors

ho-cooh avatar sanlorng avatar shomnipotence avatar udev2019 avatar xsm2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

fastcopy's Issues

Context menu not appearing

The context menu fails to appear, appearing only when I right-click on the desktop but not when I right-click on files or folders. Am I doing something wrong?

Screenshot 2023-06-01 003217

Screenshot 2023-06-01 003310

Certificate Outdate

hello can you provide a valid certificate?
i can't install it with current cer

Release installer.

Please release ready-made installer file for easier install. Some of newbie like us don't have knowledge and enough internet speed to download visual studio and manually build installer file. I really like your this app so much. Also it is possible to replace this app with built in windows copy/move interface like teracopy or supercopier? btw thanks for making this good looking apps. 😊

bug: Context menu items not visible

Items in submenu of the FastCopy are not visible.

screenshot

Menu

With info from the screenshots, when click on area for copying, it say copying successful but stuck on copying

Copying

Success message

System info

Edition: Windows 10 Enterprise
Version 22H2
OS build: 19045.2965
Experience: Windows Feature Experience Pack 1000.19041.1000.0

[Solution] Certificate out of date.

Change your system date to match the timeframe of the certificate date, install the certificate and app. Then revert system clock to current date.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.