Move Large Folders Without Breaking Apps Using Junction Links in Windows 10/11

  • Start date Start date
  • Reading time 6 min read

Move Large Folders Without Breaking Apps Using Junction Links in Windows 10/11​

Difficulty: Intermediate | Time Required: 15 minutes
Running out of space on your system drive? Large application folders, game data, development caches, media libraries, and tool directories can quickly fill up C:. The problem is that many apps expect their files to remain in the original path. If you simply move the folder, the app may break, recreate an empty folder, or fail to launch.
A Windows junction link solves this neatly. You move the real folder to another local drive, then place a junction at the original location. To Windows and most apps, the old path still appears to exist, but the data is actually stored somewhere else.
This tutorial applies to Windows 10 and Windows 11 on NTFS-formatted local drives.

Prerequisites​

Before you begin, make sure you have:
  1. A local destination drive with enough free space, such as D:.
  2. Administrator access, especially if the folder is under protected locations like C:\Program Files.
  3. A backup of important data.
  4. All related apps fully closed.
  5. The original folder path and new destination path written down.
Important: Junctions are intended for local folders. They should not be used to point to mapped network drives. For this guide, keep both the original path and destination on local NTFS volumes.

Example Scenario​

In this example, we will move:
C:\Apps\BigAppData
to:
D:\MovedFolders\BigAppData
Then we will create a junction so apps can still access:
C:\Apps\BigAppData
You can replace these paths with your own.

Step 1: Close the App Completely​

  1. Save your work.
  2. Exit the app that uses the folder.
  3. Check the notification area near the clock for background app icons.
  4. Open Task Manager and confirm the app is not still running.
If the app has a background service, launcher, updater, or sync tool, stop that too if possible.
Tip: Moving a folder while files are open may result in skipped files, access denied errors, or an incomplete copy.

Step 2: Open Command Prompt as Administrator​

  1. Open the Start menu.
  2. Type:
cmd
  1. Right-click Command Prompt.
  2. Select Run as administrator.
  3. Approve the User Account Control prompt.
Use Command Prompt rather than PowerShell for the simplest mklink syntax. The mklink command is a Command Prompt command.

Step 3: Create the Destination Parent Folder​

Create the folder that will hold the moved data:
mkdir "D:\MovedFolders"
Do not create the final BigAppData folder manually unless you know it is empty. Robocopy can create it during the copy process.

Step 4: Copy the Folder to the New Drive​

Use robocopy to copy the original folder to the new location:
robocopy "C:\Apps\BigAppData" "D:\MovedFolders\BigAppData" /E /COPY:DAT /DCOPY:DAT /R:2 /W:5 /XJ /MT:8 /J
What these options do:
  • /E copies all subfolders, including empty ones.
  • /COPY:DAT copies file data, attributes, and timestamps.
  • /DCOPY:DAT preserves directory data, attributes, and timestamps.
  • /R:2 retries failed copies twice.
  • /W:5 waits 5 seconds between retries.
  • /XJ avoids following existing junctions inside the source folder.
  • /MT:8 uses multithreaded copying.
  • /J uses unbuffered I/O, which is useful for large files.
When the copy completes, review the summary. Robocopy exit codes from 0 through 7 generally indicate that no copy failure occurred. A value of 8 or higher means one or more files failed to copy.
Note: If you need to preserve advanced permissions, ownership, or auditing information, you may prefer /COPYALL, but that usually requires elevated permissions and should be used carefully.

Step 5: Run Robocopy One More Time​

Before switching over, run the same command again:
robocopy "C:\Apps\BigAppData" "D:\MovedFolders\BigAppData" /E /COPY:DAT /DCOPY:DAT /R:2 /W:5 /XJ /MT:8 /J
This second pass is usually much faster. It catches any files that changed during the first copy.

Step 6: Rename the Original Folder​

Do not delete the original folder yet. Rename it first so you have an easy rollback option:
ren "C:\Apps\BigAppData" "BigAppData.old"
After this step, the original path no longer exists, which is required before creating the junction.
Warning: mklink cannot create a junction if a folder with the same name already exists at the link location.

Step 7: Create the Junction Link​

Now create the junction at the original location:
mklink /J "C:\Apps\BigAppData" "D:\MovedFolders\BigAppData"
If successful, you should see a message indicating that a junction was created.
The first path is the link path. This is the old location the app expects.
The second path is the target path. This is where the data now actually lives.

Step 8: Confirm the Junction Exists​

Run:
dir /AL "C:\Apps"
You should see an entry similar to:
<JUNCTION> BigAppData [D:\MovedFolders\BigAppData]
You can also open C:\Apps\BigAppData in File Explorer. It should appear like a normal folder, but its contents are coming from the new drive.

Step 9: Test the App​

  1. Launch the app normally.
  2. Open or load the data that was moved.
  3. Confirm settings, projects, saves, or files appear correctly.
  4. Use the app for a few minutes.
  5. Reboot Windows and test again.
If everything works, leave the .old folder in place for a day or two before deleting it.

Step 10: Remove the Old Copy After Testing​

Once you are confident the app works correctly, you can delete the renamed backup folder:
rmdir /S "C:\Apps\BigAppData.old"
Be very careful with the path before pressing Enter.
Important: Deleting files from inside C:\Apps\BigAppData will delete the real files in D:\MovedFolders\BigAppData, because the junction points there. However, removing the junction folder itself with rmdir "C:\Apps\BigAppData" removes only the junction, not the target folder.

How to Undo the Change​

If you want to move the folder back:
  1. Close the app.
  2. Remove the junction:
rmdir "C:\Apps\BigAppData"
  1. Copy the data back:
robocopy "D:\MovedFolders\BigAppData" "C:\Apps\BigAppData" /E /COPY:DAT /DCOPY:DAT /R:2 /W:5 /XJ /MT:8 /J
  1. Test the app again.
  2. Delete the moved copy only after confirming everything works.

Tips and Troubleshooting​

“Cannot create a file when that file already exists”​

The original folder still exists. Rename it or move it out of the way before running mklink /J.

“Access is denied”​

Run Command Prompt as administrator. Also check whether the app, antivirus, sync software, or a Windows service is still using files in the folder.

The app recreated an empty folder​

This usually means the junction was created in the wrong place, or the app was running while you moved the folder. Close the app, remove the empty folder, and recreate the junction using the exact original path.

Avoid moving critical Windows folders​

Do not use this method for C:\Windows, the whole C:\Users folder, system profile folders, or protected Microsoft Store app directories. Stick to known application data folders, game libraries, project folders, caches, and large non-system directories.

Be careful with backup tools​

Some backup tools follow junctions and may back up the target data twice. If using Robocopy for backups, consider /XJ to avoid traversing junction points.

Conclusion​

Junction links are a practical way to free space on your Windows 10 or Windows 11 system drive without forcing apps to learn a new folder path. By copying the data safely, renaming the original folder, and creating a junction with mklink /J, you can move large folders to another local drive while keeping the original path intact.
Used carefully, this technique is ideal for bulky app data, game folders, development tools, and media-heavy directories.
Key Takeaways:
  • Junctions let apps keep using the old folder path while data lives elsewhere.
  • Use robocopy first, then create the junction only after verifying the copy.
  • Keep the old folder temporarily as a rollback option.
  • Avoid moving core Windows folders or protected system locations.
  • Use rmdir to remove a junction itself without deleting the target folder.

This tutorial was generated to help WindowsForum.com users get the most out of their Windows experience.

Reference Metadata​

  • Microsoft Learn: mklink command reference.
  • Microsoft Learn: Hard links and junctions in NTFS.
  • Microsoft Learn: robocopy command reference.
 

Back
Top