{"id":48516987,"url":"https://github.com/urbans0ft/fclip","last_synced_at":"2026-04-07T19:32:21.203Z","repository":{"id":113270529,"uuid":"164679344","full_name":"urbans0ft/fclip","owner":"urbans0ft","description":"In reference to the windows `clip` the `fileclip` command copies files to the windows clipboard or pastes them from it.","archived":false,"fork":false,"pushed_at":"2024-09-13T07:11:44.000Z","size":334,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-09-13T19:51:45.018Z","etag":null,"topics":["c","clipboard","cpp","win32","winapi","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/urbans0ft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-08T15:35:27.000Z","updated_at":"2024-09-13T07:11:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"74589a06-d298-4a94-9d90-38a8f7a14f9f","html_url":"https://github.com/urbans0ft/fclip","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/urbans0ft/fclip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urbans0ft%2Ffclip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urbans0ft%2Ffclip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urbans0ft%2Ffclip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urbans0ft%2Ffclip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/urbans0ft","download_url":"https://codeload.github.com/urbans0ft/fclip/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urbans0ft%2Ffclip/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31526666,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","clipboard","cpp","win32","winapi","windows"],"created_at":"2026-04-07T19:32:15.046Z","updated_at":"2026-04-07T19:32:21.189Z","avatar_url":"https://github.com/urbans0ft.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fclip\n\nIn reference to the windows `clip` the ~~`fclip`~~ (see [Changes](#changes)) `fileclip` command copies files to the windows clipboard or pastes them from it.\n\n![fclip demo](doc/fclip-demo.gif)\n\n**Breaking change in v2.1**\n\n\u003e At some point (mid 2022[?]) Microsoft introduced a `fclip.exe` (`C:\\Windows\\System32\\fclip.exe`) which is totatlly unrelated to this project! Due to this fact the fclip project now deploys a **`fileclip.exe`**.\n\n# Usage\n\n    fileclip [-v | file1 [file2 [... [fileN]]]]\n\nIf you'd like a stable version use the [release](https://github.com/urbans0ft/fclip/releases)\nprovided.\n\n## Copying\n\n**Example:**\n\n```\n\u003e fileclip file1.dat ..\\file2.dat \"C:\\long folder\\file3.dat\" \"C:\\file4.dat\"\n```\n\n`fileclip` supports relative and absolute paths. Moreover the path existence is\nchecked before modifying the clipboard data. If a path does not exist `fileclip`\nreturns `INVALID_FILE_ATTRIBUTES` wich is equivalent to -1.\n\n```\n\u003e fileclip file-does-not-exist.dat\n\u003e echo %ERRORLEVEL%\n-1\n```\n\nPress `ctrl + v` to paste the files.\n\n## Pasting\n\n```\n\u003e fileclip -v\n```\n\n`fileclip -v` checks if the clipboard contains a file reference and pastes it to\nthe current location. It simulates pressing `ctrl + v`.\n\n## Version\n\n```\n\u003e fileclip\nfileclip Version 2.2.0\n```\n\n# Changes\n\n- v2.3.3\n\t- Bug(s)\n\t\t- Issue [#7](https://github.com/urbans0ft/fclip/issues/7)\n\t\t- Exception if file exists and gets pasted by CF_HDROP.\n\t- Change(s):\n\t\t- Display error message if there's nothing to paste.\n\t\t- Skip files which cannot be pasted (print to stderr).\n- v2.3\n\t- Change(s):\n\t\t- Display usage information when starting `fileclip` without parameter.\n\t\t- Keep console window open when executing `fileclip` via the explorer (e.g. double-click).\n\t\t- Display last error on stderr if copying fails.\n\t\t- Error message in english only.\n\t- Develop:\n\t\t- LastError class to facilitate message retrieval of `GetLastError` error codes.\n- v2.2\n\t- Bug(s)\n\t\t- Fallback to paste by CF_HDROP if FILECONTENTS is not available.\n\t- Develop:\n\t\t- Enumerating clipboard formats in DEBUG mode.\n- v2.1 **Breaking Changes**\n\t- Change(s): `fclip` becomes `fileclip` executable.\n\t- Develop: vscode project fully integrates cmake with gcc.\n\n- v2.0 **Major Changes**\n\n\t- Bug(s):\n\t\t- support of relative file names (..\\\\..\\\\file.dat)\n\t\t- return value on copy failure (-1)\n\t- Change(s):\n\t\t- 64-bit only (since its 2022)\n\t\t- fclip version info\n\t- Develop:\n\t\t- UNICODE-only support:\n\n\t\t\t\u003e Windows natively supports Unicode strings for UI elements, file names,\n\t\t  and so forth. Unicode is the preferred character encoding, because it\n\t\t  supports all character sets and languages. Windows represents Unicode\n\t\t  characters using UTF-16 encoding, in which each character is encoded as\n\t\t  one or two 16-bit values.\n\n\t\t\t_\u0026mdash;[microsoft.com](https://learn.microsoft.com/en-us/windows/win32/learnwin32/working-with-strings)_\n\n\t\t- CMake build system\n\t\t- Increased verbosity\n\n# Building\n\n## Prerequisites\n\n- cmake\n- gcc (MinGW-w64)\n\nBuilding is known to work with:\n\n```\n\u003e cmake --version\ncmake version 3.26.1\n\n\u003e g++ --version\ng++.exe (x86_64-win32-seh-rev2, Built by MinGW-W64 project) 12.2.0\n\n\u003e systeminfo\n\nOS Name:                   Microsoft Windows 10 Enterprise\nOS Version:                10.0.19041 N/A Build 19041\n```\n\n# Installation\n\n## Path Environment\n\nBy default `%LOCALAPPDATA%\\Microsoft\\WindowsApps` should be available within your\n`PATH` environment variable. So copying `fileclip.exe` to this location should be enough.\n\n```\n\u003e copy fileclip.exe %LOCALAPPDATA%\\Microsoft\\WindowsApps\n    1 file(s) copied.\n\n\u003e where fileclip\nC:\\Users\\\u003cuser\u003e\\AppData\\Local\\Microsoft\\WindowsApps\\fileclip.exe\n```\n\n\u003e The `fileclip.exe` should be placed within one directory of the `%PATH%` environment\n\u003e variable or the `PATH` variable needs to be extended with the directory where `fileclip.exe`\n\u003e resides.\n\n## CMake\n\nExample configuration and compilation assuming `g++` (MinGW-w64) is installed.\n\n### Configuration\n\nGenerating the debug configuration:\n\n```\n..\\fclip\u003ecmake -G \"MinGW Makefiles\" -S . -B .\\bin\\debug\\ -DCMAKE_BUILD_TYPE=Debug\n-- The C compiler identification is GNU 12.2.0\n-- The CXX compiler identification is GNU 12.2.0\n-- Detecting C compiler ABI info\n-- Detecting C compiler ABI info - done\n-- Check for working C compiler: C:/mingw64/bin/gcc.exe - skipped\n-- Detecting C compile features\n-- Detecting C compile features - done\n-- Detecting CXX compiler ABI info\n-- Detecting CXX compiler ABI info - done\n-- Check for working CXX compiler: C:/mingw64/bin/g++.exe - skipped\n-- Detecting CXX compile features\n-- Detecting CXX compile features - done\n-- Configuring done\n-- Generating done\n```\n\nGenerating the release configuration: \n\n```\n..\\fclip\u003ecmake -G \"MinGW Makefiles\" -S . -B .\\bin\\release\\ -DCMAKE_BUILD_TYPE=Release\n-- The C compiler identification is GNU 12.2.0\n-- The CXX compiler identification is GNU 12.2.0\n...\n-- Configuring done\n-- Generating done\n```\n\n### Compilation\n\nAfter the successfull configuration the project may be compiled. If no changes to the CMake configuration files are made\nthere's no need to (re-)run it again. Instead the project may be (re-)compiled any time.\n\n**Debug**\n\n```\n..\\fclip\u003ecmake --build bin\\debug\n[ 33%] Building CXX object CMakeFiles/fclip.dir/fclip.cpp.obj\n[ 66%] Building CXX object CMakeFiles/fclip.dir/pch.cpp.obj\n[100%] Linking CXX executable fileclip.exe\n[100%] Built target fileclip\n```\n\n**Release**\n\n```\n..\\fclip\u003ecmake --build bin\\release\n[ 33%] Building CXX object CMakeFiles/fclip.dir/fclip.cpp.obj\n[ 66%] Building CXX object CMakeFiles/fclip.dir/pch.cpp.obj\n[100%] Linking CXX executable fileclip.exe\n[100%] Built target fileclip\n```\n\n# References\n* Inspired by [stackoverflow question](https://stackoverflow.com/q/25708895/10224443)\n* [MinGW-w64](https://github.com/niXman/mingw-builds-binaries/releases)\n* [CMake](https://cmake.org/download/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furbans0ft%2Ffclip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Furbans0ft%2Ffclip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furbans0ft%2Ffclip/lists"}