Bulk Move Files
Select a folder to view and move multiple files at once. Choose which file types to display.
Select a folder to view and move multiple files at once. Choose which file types to display.
A complete guide to browsing and bulk-moving files across images, videos, audio, documents, and archives — all in your browser, without installing anything.
Mass Move Files lets you open any folder and instantly see every file inside it — images, videos, audio, documents, archives, and everything else — then select and move them in bulk to a destination folder of your choice. There is no scanning algorithm, no similarity matching, and no grouping. It simply shows you what is in the folder and gives you fast, flexible tools to relocate what you want.
This is the right tool when you want to reorganize files without deleting anything — for example, sorting a mixed downloads folder by type, archiving old project files, or moving a set of images into a new subfolder.
Images, videos, audio, PDFs, Word docs, spreadsheets, archives, and any other file. Use the type filters to show only what you need.
Files appear in batches of 50 as they are read. No fingerprinting or analysis required — cards appear within seconds even for large folders.
Type any folder name. It is created automatically inside your scanned directory. Default is Pixy-Moved.
Ctrl+Click any 2+ files and open the Compare modal to view them side-by-side with full metadata before deciding where to put them.
| Situation | Use This |
|---|---|
| I want to reorganize files into a subfolder without deleting anything | 📂 Mass Move |
| I want to permanently remove files I no longer need | 🗑️ Mass Delete |
| I want to archive old project files into a folder called "Archive" | 📂 Mass Move |
| I want the tool to find which files are duplicates automatically | 🔍 Duplicate Finder |
| I want to move duplicates found by the Duplicate Finder | 📂 Use Move inside the Duplicate Finder |
| I want to sort a mixed folder by moving images into one place | 📂 Mass Move |
| I want to find all copies of one specific file and move them | 🔁 Reverse Search + Move |
Unlike the duplicate finder, this tool performs no analysis — no fingerprinting, no comparison, no grouping. It reads files and renders cards as fast as possible so you can start selecting immediately.
When you select a folder, the browser reads every file and subdirectory recursively. Each file's name, size, MIME type, and path are loaded. No file content is read yet — only the metadata needed to build a card.
Each file is classified as image, video, audio, document, archive, or other — using both MIME type and file extension as fallbacks. Files whose type doesn't match any enabled checkbox filter are skipped entirely.
Cards are built synchronously and appended to the DOM in batches of 50, yielding to the event loop between batches. This keeps the page responsive even while loading thousands of files. The progress bar shows how far along the scan is.
Image cards use IntersectionObserver to decode and display thumbnails only when they scroll into view (with a 200px lookahead margin). This prevents the page from decoding thousands of images at startup. Videos play on hover. Audio cards render a built-in player immediately without needing the full file decoded.
When you execute a move, the tool reads each file's ArrayBuffer, writes it to a new FileSystemFileHandle in the destination folder, then calls remove() on the original handle. The move is a copy-then-delete under the hood — the original is only removed after the copy succeeds. The card is removed from the grid after successful execution.
When you execute a move, the tool creates the destination folder inside your scanned directory. The default name is Pixy-Moved, but you can type any name in the destination input before executing.
| Scenario | What happens |
|---|---|
| Folder name does not exist | Created automatically inside the scanned directory |
| Folder already exists | Files are moved into it. Existing files inside are not affected. |
| Filename conflict (same name already in destination) | The move for that file fails silently. Other files in the batch still move. |
| Move with Queue Mode (recommended) | Files staged first, then all moved at once when you click "Move All Files" |
| Move without Queue Mode | A dialog asks for the folder name, then files move immediately on confirm |
The welcome screen has six file type checkboxes. Only files matching enabled types are loaded and shown. Your selections are saved to localStorage so they persist across sessions.
| Filter | What it includes |
|---|---|
| 🖼️ Images | JPEG, PNG, GIF, WebP, BMP — shown as lazy-loaded thumbnails |
| 🎬 Videos | MP4, WebM, MOV, MKV, AVI — play on hover with mute toggle |
| 🎵 Audio | MP3, WAV, FLAC, OGG, M4A, WMA — shown with built-in player |
| 📄 Documents | PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, TXT, MD, CSV — shown with type icon |
| 📦 Archives | ZIP, RAR, 7Z, TAR, GZ, BZ2 — shown with archive icon |
| 📎 Other | Anything not classified above — shown with a generic file icon |
On the welcome screen, check or uncheck the file type boxes. If you only want to move images and videos, uncheck Documents, Archives, Audio, and Other. Your selection is remembered next time.
Click 📂 Select Folder. A native folder picker opens (Chrome / Edge). Or drag and drop a folder directly onto the page. Subfolders are included automatically — all files are read recursively.
Files appear as cards in a grid. Use any of these selection methods:
For any file, click the 🔍 hover icon to open a full-size preview with metadata (dimensions, size, type, path) and a 📂 Move button for quick action. Audio files open with a modal player. Videos show a frame capture. Documents and archives show a large type icon.
To compare 2+ files side-by-side: Ctrl+Click them, then click ⚖️ Compare in the toolbar. Each item shows its preview, metadata, and a Move button for quick action from inside the compare modal.
Select the files you want to move, then click 📂 Move in the toolbar. With Queue Mode on (the default), files are added to the Move Queue tab instead of moving immediately.
Switch to the Move Queue tab in the sidebar. Review the staged files, preview any you're unsure about, remove items with the ✕ button if you change your mind, then type your destination folder name and click Move All Files.
In the Move Queue actions panel at the bottom, there is a Destination Folder text field. The default is Pixy-Moved. Type any folder name — it will be created inside your scanned directory automatically. For example, type Archive-2024 to move all queued files into a new subfolder by that name.
Uncheck Queue Mode in the toolbar if you prefer immediate moves. Clicking Move opens a small dialog to confirm the destination folder name, then moves the files right away. A first-time warning explains the behavior — you can check "Don't show again" once you've understood it.
| Button / Action | What it does |
|---|---|
| 🔄 Select New Folder | Reload the page and pick a new folder to browse |
| 📋 Copy Names (N) | Copy selected filenames to clipboard. N = count. |
| 📂 Move (N) | Move selected files or stage them in the Move Queue. N = count. |
| ✕ Deselect All | Remove selection from all cards |
| ⚖️ Compare (N) | Open compare modal for Ctrl+clicked files. Needs 2+. |
| 🔇 Videos | Mute / unmute all video cards |
| 🔇 Audio | Mute / unmute all audio players |
| Queue Mode checkbox | Stage files before moving. Recommended on. Appears after first scan. |
| File type checkboxes | Filter which file types are loaded. Set before selecting a folder. |
| Click card | Select / deselect the file |
| Ctrl + Click card | Add / remove from compare list (purple border) |
| Click & drag (empty area) | Box-select multiple cards at once |
| Ctrl + drag | Add to existing selection with box |
| Right-click card | Context menu: Copy Name / Move / Add to Compare |
| 🔍 hover icon | Open full-size preview with metadata and Move button |
| Hover video card | Auto-play the video clip. Stops on mouse leave. |
| ▶️ on audio card | Play audio. Pauses all other players on page automatically. |
| ←/→ on progress bar | Seek audio backward/forward 5 seconds when bar is focused |
| Destination Folder input | Name of subfolder to create inside scanned directory. Default: Pixy-Moved. |
| Move All Files | Execute all queued moves at once |
| ✕ on queue card | Remove that file from the Move Queue (keeps the file in place) |
| 📥 Download List | Export a plain-text list of all files with size and type |
| Show as list | Toggle a text view of all file paths for copy/export |
Each file type has a distinct card style so you can quickly identify what you're looking at without opening a preview.
Lazy-loaded thumbnails using IntersectionObserver. Only images within 200px of the viewport are decoded. Clicking 🔍 shows a full-size scaled preview in a modal with a Move button.
Card shows a video element that plays on mouse hover and pauses on mouse leave. A "🎬 VIDEO" badge identifies the type. The 🔍 icon opens a preview with playback controls and a Move button.
Cards show a purple gradient art area with a 🎵 icon, plus a custom play/pause/seek/mute player. Playing one track pauses all others. The 🔍 preview opens a larger modal player with a Move button.
PDFs show 📕, Word docs 📘, Excel 📗, PowerPoint 📙, other text 📄. No preview image is generated — the icon and extension badge identify the file. Clicking 🔍 shows metadata and a Move button.
Archives show 📦 with the extension (ZIP, RAR, 7Z). Other files show 📎. Like documents, the icon and extension are the identification. Preview modal shows metadata and a Move button.
Queue Mode is the recommended way to move files. It adds a review step between selecting files and physically relocating them.
Files are added to the Move Queue instead of moving immediately. A badge reading "📂 MOVE" appears on each staged card in the main grid so you can see at a glance what's queued.
Click 📂 Move Queue in the sidebar. Every staged file appears as a card. You can preview each one (click 🔍), play audio files, watch videos on hover, and review metadata before committing.
Type your destination folder name in the text field at the bottom of the queue panel. Click the ✕ button on any queue card to remove it from the queue and keep the file in place.
Click Move All Files. A first-time confirmation warning appears explaining the operation. Files are moved one by one — each is written to the destination, then removed from the source. Successfully moved files are removed from the grid. Failed moves are reported in a toast.
Use descriptive folder names like Archive-2024 or Photos-To-Sort rather than the default Pixy-Moved so you know what ended up there when you browse the folder later.
For focused reorganization, uncheck all file types except the one you want to move. This reduces cognitive load and speeds up card rendering for large folders.
Queue Mode gives you a second chance to review before committing. Even though moves are safer than deletions (originals are only removed after copy succeeds), it's still good practice to review the queue first.
For documents and archives, click 🔍 to check the path and size before adding to the queue. A file might look like a duplicate based on its name but be a different version — verify before moving.
Click and drag on any empty area in the results grid to rubber-band select a group of cards at once. Much faster than clicking each one individually for large batches.
Before moving, click Download List to save a text file of all files with paths and sizes. Useful as a snapshot of the folder structure before reorganization.
The File System Access API only grants write access to the specific folder you opened. You cannot move files to an unrelated location on your drive. To move files outside the scanned folder, use your operating system's file manager.
If a file with the same name already exists in the destination folder, the move for that specific file fails. The error count in the toast will indicate how many files failed. Rename conflicting files manually before retrying.
Each card holds a reference to the file handle and metadata. For folders with 10,000+ files, RAM usage can become significant. Scan specific subfolders rather than entire drives.
The File System Access API (needed for native folder picking and file write/delete) is only available in Chrome 86+ and Edge 86+. In Firefox and Safari, the folder picker and move features do not work. Use "Download List" to export a file list in those browsers.
You can only browse one folder per session. To move files from two separate folders, run two separate sessions or scan their common parent directory.
The File System Access API works with local file systems. Network drives, OneDrive, Dropbox, or other cloud-synced folders may not work reliably depending on how they are mounted.
localStorage. No file names, paths, or move history are ever saved.Pixy-Moved), you can easily move them back manually using your OS file manager. This is much more recoverable than deletion, which is why Mass Move is recommended over Mass Delete when you're unsure..txt file listing every file in the current view with its path, size, and type. Useful as a snapshot of the folder structure before reorganization, or for sharing the file list without sending the actual files.