Bulk Move Files

Select a folder to view and move multiple files at once. Choose which file types to display.

Ready
0 items

📖 How Mass Move Files Works

A complete guide to browsing and bulk-moving files across images, videos, audio, documents, and archives — all in your browser, without installing anything.

100% Private — Your Files Never Leave Your Computer Everything runs inside your browser using the File System Access API. No uploads, no accounts, no tracking. Close the tab and all access is revoked.

📂 What This Tool Does

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.

All File Types

Images, videos, audio, PDFs, Word docs, spreadsheets, archives, and any other file. Use the type filters to show only what you need.

Instant Loading

Files appear in batches of 50 as they are read. No fingerprinting or analysis required — cards appear within seconds even for large folders.

Named Destination

Type any folder name. It is created automatically inside your scanned directory. Default is Pixy-Moved.

Compare Before Moving

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.

↔️ Mass Move vs. Other Tools — Which Should I Use?

Comparison of when to use Mass Move versus other Sakarto tools
SituationUse 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

🧠 How It Works

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.

  1. Read the Folder via File System Access API

    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.

  2. Classify by File Type

    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.

  3. Render Cards in Batches of 50

    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.

  4. Lazy-Load Images & Thumbnails

    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.

  5. Move via File System Access API

    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.

Moves are copy-then-delete. Because browsers have no native "rename/move" file system primitive, each file is written to the destination first, then deleted from the source. If the write fails, the original is left untouched. If the write succeeds but the delete fails, you may end up with both the original and the copy — no data is lost.

📁 The Destination Folder

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.

What happens in different destination folder scenarios
ScenarioWhat happens
Folder name does not existCreated automatically inside the scanned directory
Folder already existsFiles 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 ModeA dialog asks for the folder name, then files move immediately on confirm
The destination folder must be inside the scanned directory. The File System Access API only grants write access to the folder you selected. You cannot move files to an arbitrary location on your drive — only to subfolders within the scanned folder.

📋 File Type Filters

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.

What each file type filter includes
FilterWhat it includes
🖼️ ImagesJPEG, PNG, GIF, WebP, BMP — shown as lazy-loaded thumbnails
🎬 VideosMP4, WebM, MOV, MKV, AVI — play on hover with mute toggle
🎵 AudioMP3, WAV, FLAC, OGG, M4A, WMA — shown with built-in player
📄 DocumentsPDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, TXT, MD, CSV — shown with type icon
📦 ArchivesZIP, RAR, 7Z, TAR, GZ, BZ2 — shown with archive icon
📎 OtherAnything not classified above — shown with a generic file icon
Uncheck to focus. If you only want to move images, uncheck everything else before selecting the folder. This speeds up loading and reduces visual noise when reviewing cards.

📋 Step-by-Step: How to Use Mass Move

Step 1

Choose Which File Types to Show

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.

Step 2

Select a Folder

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.

Step 3

Browse and Select Files

Files appear as cards in a grid. Use any of these selection methods:

  • Click a card to select it (blue border)
  • Click & drag on empty space to box-select multiple cards at once
  • Ctrl + drag to add to an existing selection without clearing it
  • Ctrl+Click (Cmd+Click on Mac) to add a card to the compare list (purple border)
  • Right-click any card for the context menu (Copy / Move / Compare)
Step 4

Preview Before Deciding

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.

Step 5

Move — With Queue Mode (Recommended)

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.

Step 6

Set the Destination Folder Name

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.

You can use the same destination folder name across multiple sessions. If the folder already exists from a previous run, new files are added to it without affecting what's already there.
Step 7

Move Without Queue Mode

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.

🏛️ Quick Reference — All Controls

All toolbar buttons and keyboard shortcuts for Bulk Move
Button / ActionWhat it does
🔄 Select New FolderReload 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 AllRemove selection from all cards
⚖️ Compare (N)Open compare modal for Ctrl+clicked files. Needs 2+.
🔇 VideosMute / unmute all video cards
🔇 AudioMute / unmute all audio players
Queue Mode checkboxStage files before moving. Recommended on. Appears after first scan.
File type checkboxesFilter which file types are loaded. Set before selecting a folder.
Click cardSelect / deselect the file
Ctrl + Click cardAdd / remove from compare list (purple border)
Click & drag (empty area)Box-select multiple cards at once
Ctrl + dragAdd to existing selection with box
Right-click cardContext menu: Copy Name / Move / Add to Compare
🔍 hover iconOpen full-size preview with metadata and Move button
Hover video cardAuto-play the video clip. Stops on mouse leave.
▶️ on audio cardPlay audio. Pauses all other players on page automatically.
←/→ on progress barSeek audio backward/forward 5 seconds when bar is focused
Destination Folder inputName of subfolder to create inside scanned directory. Default: Pixy-Moved.
Move All FilesExecute all queued moves at once
✕ on queue cardRemove that file from the Move Queue (keeps the file in place)
📥 Download ListExport a plain-text list of all files with size and type
Show as listToggle a text view of all file paths for copy/export

📱 How Each File Type is Displayed

Each file type has a distinct card style so you can quickly identify what you're looking at without opening a preview.

Images

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.

Videos

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.

Audio

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.

Documents

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 & Other

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 — How It Works

Queue Mode is the recommended way to move files. It adds a review step between selecting files and physically relocating them.

  1. Select files and click Move

    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.

  2. Switch to the Move Queue tab

    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.

  3. Set the destination and remove second-thoughts

    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.

  4. Execute the move

    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.

💡 Tips for Best Results

Name Your Destination Clearly

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.

Filter to One Type at a Time

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.

Always Use Queue Mode

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.

Preview Documents Before Queuing

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.

Box-Select for Speed

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.

Export the List First

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.

⚠️ Known Limitations

Destination must be inside the scanned folder.

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.

No overwrite protection — filename conflicts fail silently.

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.

Memory limit for very large folders.

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.

Move requires Chrome or Edge.

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.

Single folder at a time.

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.

No cloud or network drive support.

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.

🔒 Privacy & Security

Zero network activity after page load. Open DevTools → Network tab and verify: no outbound requests at any point during browsing, previewing, or moving.
No file content is transmitted. Images are decoded in your browser for thumbnail display. Audio and video are played locally. File data is only ever read and written within your local file system.
Folder access is scoped and session-only. Permission is granted only for the specific folder you select, lasts only while the tab is open, and is revocable from browser site settings at any time.
Only preferences are saved. File type checkboxes and Queue Mode preference are stored in localStorage. No file names, paths, or move history are ever saved.

❓ Frequently Asked Questions

Can I move files to a folder outside the scanned directory?
No. The File System Access API restricts write access to the folder you opened and its subfolders. You cannot write to an arbitrary path on your drive. To move files to a completely different location, use your OS file manager and copy the file list from the Download List export as a reference.
What happens if a file with the same name already exists in the destination?
The move for that specific file fails silently. The original file stays in place and the destination is not overwritten. The toast message after execution will show how many files succeeded and how many failed. To resolve: rename the conflicting file in your OS file manager, then retry the move for that file.
Is this reversible? Can I undo a move?
Not automatically — there is no undo button. However, since files are moved to a named subfolder within the same scanned directory (e.g. 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.
Why doesn't the move button work in Firefox or Safari?
The File System Access API, which this tool uses for folder reading and file write/delete operations, is only supported in Chrome 86+ and Edge 86+. Firefox and Safari do not support it. In those browsers, the folder picker and move operations are unavailable. You can still export a file list via Download List and use your OS file manager to move files manually.
How is this different from the Duplicate Finder's Move feature?
The Duplicate Finder's Move feature also moves files to a subfolder — but it only shows files it identifies as duplicates or similar. Mass Move shows everything in the folder regardless of similarity, giving you manual control over what moves. Use the Duplicate Finder when you want the algorithm to suggest what to move; use Mass Move when you already know exactly which files to relocate.
The page is slow after loading a large folder. What can I do?
Large folders with thousands of files create a lot of DOM elements. To improve performance: (1) uncheck file types you don't need before scanning, (2) scan a specific subfolder rather than the root, (3) close other browser tabs to free up RAM, and (4) use a recent version of Chrome or Edge.
Some files failed to move. What does that mean?
A file can fail to move if: it already exists by name in the destination (filename conflict), it is currently open in another application (file lock), or you lack the required OS permissions. The toast shows how many succeeded and failed. Failed files remain in the queue so you can investigate and retry.
What does the "Download List" button do?
Download List exports a plain-text .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.
I accidentally closed the Move Queue. Did I lose my selection?
No — switching back to the Move Queue tab restores it. The queue is held in memory for the lifetime of the browser tab. If you reload the page or navigate away, the queue and all selections are cleared.