{"id":27781277,"url":"https://github.com/ajordan2984/wpfapp_solution_syncfiles","last_synced_at":"2026-05-17T11:33:53.467Z","repository":{"id":286895805,"uuid":"957280184","full_name":"ajordan2984/WpfApp_Solution_SyncFiles","owner":"ajordan2984","description":"C# sync files from one folder to many","archived":false,"fork":false,"pushed_at":"2025-07-08T21:50:51.000Z","size":409,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-08T22:36:14.212Z","etag":null,"topics":["async-await","backup-utility","filebackup","tasks-app","tasks-automation","tasks-management","thread-safe","threads","threadsafe","ui-design","wpf","wpf-application","wpf-controls","wpf-styles","wpf-ui"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ajordan2984.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,"zenodo":null}},"created_at":"2025-03-30T01:03:23.000Z","updated_at":"2025-07-08T21:50:54.000Z","dependencies_parsed_at":"2025-06-27T18:23:01.210Z","dependency_job_id":"90cc50c2-b961-4d7d-b1c2-6fc9b77a31ea","html_url":"https://github.com/ajordan2984/WpfApp_Solution_SyncFiles","commit_stats":null,"previous_names":["ajordan2984/wpfapp_solution_syncfiles"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ajordan2984/WpfApp_Solution_SyncFiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajordan2984%2FWpfApp_Solution_SyncFiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajordan2984%2FWpfApp_Solution_SyncFiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajordan2984%2FWpfApp_Solution_SyncFiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajordan2984%2FWpfApp_Solution_SyncFiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ajordan2984","download_url":"https://codeload.github.com/ajordan2984/WpfApp_Solution_SyncFiles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajordan2984%2FWpfApp_Solution_SyncFiles/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268022198,"owners_count":24182825,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["async-await","backup-utility","filebackup","tasks-app","tasks-automation","tasks-management","thread-safe","threads","threadsafe","ui-design","wpf","wpf-application","wpf-controls","wpf-styles","wpf-ui"],"created_at":"2025-04-30T12:44:20.170Z","updated_at":"2026-05-17T11:33:53.462Z","avatar_url":"https://github.com/ajordan2984.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🗂️ WpfApp_Solution_SyncFiles Utility\n\n[![Status](https://img.shields.io/badge/status-active-brightgreen)](#)\n[![Project](https://img.shields.io/badge/project-maintained-blue)](#)\n[![Version](https://img.shields.io/badge/version-3.0.1-blue)](#)\n\n---\n\n## 🔍 Overview\n\nThis utility makes it simple to back up files from a selected PC folder to one or more external drives **without creating duplicate files**. It only copies over **new** or **updated** files that have been added to the PC folder. This keeps your external backups clean and up to date.\n\n![SyncUserFiles](https://github.com/user-attachments/assets/dc64fb20-958b-4082-a208-e691ffdc00a4)\n\n---\n\n## ⚙️ How It Works\n\n\u003e [!NOTE]\n\u003e The selected or typed PC folder must match the external folder name or it will not run. For example, if you select or type **`C:\\Users\\johndoe\\Pictures`** on your PC, the external folder must end with **`Pictures`**.\n\n- The program scans a selected folder on your PC.\n- It then **compares** the contents of that PC folder to an external backup folder.\n- On the **first run**, it creates a `.txt` file listing **all files** currently in the external folder.\n  - On **subsequent runs**, instead of re-scanning the external folder (which can be slow with thousands of files), the utility simply **reads from this file** to get an instant snapshot of what's already backed up and then updates the `.txt` file at the end with any file changes.\n- It then compares both file structures:\n  - **New files** or **Updated files** in the PC folder are **copied over** to the external folder.\n  - If a **file or folder is renamed** on the PC, the utility will:\n    - Copy the renamed item.\n    - Move the old version on the external drive to a **`/Quarantine`** folder (for safe review and cleanup).\n- This smart scanning approach reduces external drive reads, saving time and wear on your hardware.\n- Finally, a log file is created on the external drive detailing any changes made.\n\n\u003e [!TIP]\n\u003e If you want to skip any subfolder inside the selected folder on your PC and external drives, simply select or type the name of the subfolder in the field under **`(Optional) Please add or select the folders from inside the selected PC folder to excluded from backup`** and then click the button **`Add Excluded Folder`**.\n\n\u003e [!NOTE]\n\u003e When skipping a subfolder, first the subfolder will be checked to see if it exist. Next, if you're syncing the **`My_Pictures`** folder and want to skip the **`C:\\Users\\user\\Desktop\\My_Pictures\\Miscellaneous`** subfolder, any file or folder path that contains **`My_Pictures\\Miscellaneous`** will be skipped along with any subfolders inside **`Miscellaneous`**.\n\n✅ You no longer need to manually copy files to every external drive—just update your PC folder, and let the utility sync them all efficiently.\n\n---\n\n## 🔓 Version\n## Compatibility\n\n- **v3.0.1** - Windows 10 (64-bit recommended)\n- **v2.1.0** - Windows 7 (64-bit recommended)\n\nOpen Source and free to use.\n\n---\n\n## 💝 Support My Work\n\nIf you found this utility helpful and want to support my work—especially as I continue my **cancer journey**—you can send a small donation:\n\n- **Cash App**: [`$ajordan2984`](https://cash.app/$ajordan2984)\n- **Venmo**: [`@ajordan2984`](https://venmo.com/ajordan2984)\n\nEvery bit of encouragement and support makes a difference. Thank you 🙏\n\n---\n\n## 📰 Follow My Writing\n\nFor more updates, behind-the-scenes progress, and reflections from my journey, follow me on [Substack](https://andrewjordansjourney.substack.com).\n\n---\n\n## 📜 License\n\nThis project is licensed under the GNU General Public License v3.0 License. See `LICENSE` for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajordan2984%2Fwpfapp_solution_syncfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fajordan2984%2Fwpfapp_solution_syncfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajordan2984%2Fwpfapp_solution_syncfiles/lists"}