> ## Content Index
> Fetch the complete content index at: https://allmycameras.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Verified Copy vs Drag and Drop: How to Offload Camera Cards Safely
- URL: https://allmycameras.com/verified-copy-vs-drag-and-drop/
- Published: 2026-10-08T20:13:12.000Z
- Updated: 2026-10-08T20:13:12.000Z
- Description: A drag and drop that finishes without an error has not proved anything. Here is how footage gets lost or damaged on the way off a card, what a checksum-verified copy actually checks, and a simple routine you can run on a Mac or Windows PC before you format the card.
- Author: All My Cameras
- Tags: Workflow, Guides

A drag and drop off a camera card ends with the progress bar disappearing. That tells you the computer finished writing. It does not tell you that what landed on the drive matches what was on the card, or that every file was included. For a holiday you cannot reshoot, that gap matters, especially just before you format the card.

## How a normal copy can go wrong without telling you

The usual ways footage goes missing:

- **Name collisions.** GoPro cameras and older DJI drones reuse short numbered names like `GX010001.MP4` and `DJI_0001.MP4`. Copy two cards into one folder and the second set meets the first. One click on Replace, applied to all, and the earlier clips are gone with no further warning.
- **Missed folders.** Not everything lives in `DCIM`. Sony cameras, for example, keep video under `PRIVATE/M4ROOT`. Copy only `DCIM` and you have the photos but not the video.
- **Partial selections.** Selecting by thumbnail in a viewer or import app makes it easy to miss a file, or one chapter of a long recording that the camera split into several files.
- **Damage in transit.** A worn card, a cheap reader, a loose cable or an overloaded hub can hand the computer bad data. If the read does not fail outright, the copy succeeds and the file is quietly wrong. Thumbnails usually come from the first frames, so the file looks fine until you play the damaged part.
- **Unplugging too early.** Pulling the destination drive out before the system has finished writing can leave the last files incomplete.

None of these show up unless you check the copy against the card.

## What a checksum is

A checksum (or hash) is a short fingerprint calculated from every byte of a file. Change a single bit and the fingerprint changes completely. If the card file and the copied file produce the same checksum, they are the same, byte for byte.

The common choices:

| Algorithm                    | Notes                                                                                                                |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| MD5                          | Old and no longer safe for security uses, but still perfectly good at spotting accidental damage. Widely supported.  |
| SHA-256                      | Built into macOS (shasum) and Windows (Get-FileHash), so nothing to install.                                         |
| xxHash (xxh64, xxh3, xxh128) | Designed for speed rather than security. Popular in professional offload tools because it keeps up with fast drives. |

For copying from a card to a laptop drive, the card is usually the slowest part, so any of the three works. Pick one and use it every time.

## What "verified" should mean

A properly verified copy does three things:

1. Reads every file on the card and records its checksum.
2. Copies the files.
3. Reads the copies **back from the destination drive**, calculates their checksums, and compares them with the card's.

Step 3 has a catch. Right after a copy, the operating system often still holds the data it just wrote in memory. A check run straight away can end up reading that memory instead of the drive, which proves very little. Dedicated offload tools are built to avoid this. Doing it by hand, the simple fix is to eject the destination drive and plug it back in before you run the check.

A tool that only compares file sizes, or only checks that the copy finished, has not verified anything in this sense.

## A simple safe offload routine

You can do all of this with what is already on your computer. I built a Mac app that runs the same routine and sorts footage by camera, but the steps are the same either way.

### The rules

- Copy the **whole card** into a **new, empty folder** named for the date and the camera. Never merge into an existing folder.
- Verify before you delete or format anything.
- Make a second copy on a different drive and verify that too.
- Only then format the card, in the camera.

### On a Mac

Set the card and destination paths, then run these in Terminal. The checksum list is saved next to the destination folder, which is useful later as a record.

```
CARD="/Volumes/Untitled"
DEST="$HOME/Footage/2026/2026-10-08_Coast/GOPRO12"
mkdir -p "$DEST"

# 1. Fingerprint every file on the card
cd "$CARD" && find . -path '*/.*' -prune -o -type f -print0 \
  | xargs -0 shasum -a 256 > "$DEST.sha256"

# 2. Copy the card (hidden system files are skipped)
rsync -a --exclude='.*' "$CARD/" "$DEST/"
```

If the destination is an external drive, eject it and plug it back in now. Then check every copy against the card's list:

```
cd "$DEST" && shasum -a 256 -c --quiet "$DEST.sha256" && echo "ALL VERIFIED"
```

Silence followed by `ALL VERIFIED` means every file is present and identical. Any file that is missing or different is listed by name, and the final line does not appear.

### On Windows

In PowerShell, copy with Robocopy, then compare every file on the card with its copy:

```
$card = 'E:\'
$dest = 'D:\Footage\2026\2026-10-08_Coast\GOPRO12'

robocopy $card $dest /E /COPY:DT /DCOPY:T /R:2 /W:5 /XD 'System Volume Information'

Get-ChildItem $card -Recurse -File | ForEach-Object {
  $rel  = $_.FullName.Substring($card.Length)
  $copy = Join-Path $dest $rel
  if (-not (Test-Path $copy)) { "MISSING  $rel" }
  elseif ((Get-FileHash $_.FullName -Algorithm SHA256).Hash -ne
          (Get-FileHash $copy -Algorithm SHA256).Hash) { "MISMATCH $rel" }
}
```

No output from the second part means every file matched. As on the Mac, eject and reconnect an external destination before running the check.

### The second copy

Repeat the copy from the card, or from the verified first copy, to a second drive, and run the same check. On a Mac, the list you saved works for any copy:

```
cd "/Volumes/Backup/Footage/2026/2026-10-08_Coast/GOPRO12" \
  && shasum -a 256 -c --quiet "$HOME/Footage/2026/2026-10-08_Coast/GOPRO12.sha256" \
  && echo "ALL VERIFIED"
```

Keep the `.sha256` file. Running the same check a year from now tells you whether anything on that drive has changed since the day you copied it.

## What this does not protect against

A verified copy proves the copy matches the card. If a file was already damaged on the card, for example because the battery died mid-recording, the copy will be an exact copy of a damaged file. And two verified copies on drives that sit on the same desk are still one fire or one theft away from zero. Keep one copy somewhere else.

## Related

- [DJI drone file names explained](https://allmycameras.com/dji-drone-file-names-explained/)
- [How to download everything from GoPro Cloud](https://allmycameras.com/download-all-gopro-cloud-media/)
- [Google Takeout split into many zip files: download, merge and check nothing is missing](https://allmycameras.com/google-takeout-multiple-zip-files/)
- [Fix Google Takeout photo dates and missing locations](https://allmycameras.com/fix-google-takeout-photo-dates/)