You can move an ordinary Windows folder to another local drive, then leave a junction at its old path so programs can still use that path. Copy and verify the data before creating the junction, and keep the original folder until you have tested the program. This method is for a folder you own and understand, not a shortcut for moving Windows itself.
Decide whether a junction fits this folder
Use the example below only for a user-created folder such as C:\Work\SampleData. The example destination is D:\Moved\SampleData; replace both paths with your real paths in every command. Make sure D: is a local NTFS drive with enough free space for the entire folder and room for future growth. In File Explorer, open This PC, right-click the target drive, choose Properties, and check its file system and free space.
Close any program that reads or writes the folder before copying. Pause background sync or build jobs that might change it. If you cannot tell what owns a folder under C:\Windows, C:\Program Files, or C:\Users\YourName\AppData, identify it before moving it. Moving an active application directory can leave a partial copy or break an updater, even when the junction itself works.
For Documents, Downloads, Pictures, and other Windows user folders with a Location tab, use that tab's Move button in the folder's Properties instead. For a Steam game library, use Steam's own storage move feature. OneDrive should be moved through OneDrive's own location flow, not through a junction. A junction also depends on the destination drive staying connected under the same drive letter; if D: disappears or changes letter, the old path stops reaching the files.
Copy the data while the original stays in place
Open Command Prompt. These are cmd.exe commands, not PowerShell commands. Confirm that C:\Work\SampleData exists and that D:\Moved\SampleData does not contain unrelated data. If D:\Moved does not exist, create it in File Explorer first. Then run:
robocopy "C:\Work\SampleData" "D:\Moved\SampleData" /E /COPY:DAT /DCOPY:DAT /R:2 /W:2 /XJ
echo %ERRORLEVEL%
/E includes empty subfolders. /COPY:DAT copies file data, attributes, and timestamps; /DCOPY:DAT does the same for directories. /R:2 /W:2 limits retries on files that cannot be copied, and /XJ avoids following junctions already inside the source tree. Do not use /MOVE or /MIR here: the original is your recovery copy until the new path has been tested.
Robocopy uses return codes differently from many commands: codes below 8 can indicate a completed copy, while 8 or higher indicates failures. Still read its final summary. Failed or skipped files that matter to the program require investigation before you continue. If the source changed during the copy, close the writer and repeat the copy; do not switch paths while files are changing.
Open both folders in File Explorer and compare their contents, especially large files and nested directories. For a second dry check, run this while the original is still closed to writers:
robocopy "C:\Work\SampleData" "D:\Moved\SampleData" /E /L /COPY:DAT /DCOPY:DAT /R:0 /W:0 /XJ
/L lists work without copying. Review anything it proposes to copy; a changing source or a missing file means the destination is not ready. This dry check is useful but is not a byte-for-byte integrity test. If the folder contains critical data, use your normal backup and application-specific verification before proceeding. Nothing has been removed from C: yet, so you can stop here and leave the original as it was.
Replace the old path only after checking the copy
Keep applications closed. Rename the original folder to a temporary name in its parent directory, then create the junction at the now-free old path:
ren "C:\Work\SampleData" "SampleData.original"
mklink /J "C:\Work\SampleData" "D:\Moved\SampleData"
dir /AL "C:\Work"
The ren command does not erase the original. mklink /J creates a directory junction whose first path is the link and whose second path is the destination. The dir /AL output should identify SampleData as a junction pointing at D:\Moved\SampleData. Open C:\Work\SampleData in File Explorer and confirm that the expected files appear, then test the application that uses them.
If mklink fails, do not delete either copy. Check that the old path is truly free, that the destination exists, and that you used Command Prompt with permission to write in C:\Work. If you choose to stop, rename SampleData.original back to SampleData. If the application fails after the junction is made, use the rollback steps below before changing its files further.
Only after the application works and you have a separate backup should you delete C:\Work\SampleData.original through File Explorer to reclaim space on C:. Check the name carefully: that is the original directory, while C:\Work\SampleData is the junction. Deleting the wrong contents through the junction can remove files from D:. Keeping the original temporarily means the move has not yet freed its full size on C:.
Undo the junction without deleting the destination
Close the application again. First use dir /AL "C:\Work" to confirm that C:\Work\SampleData is still a junction. If SampleData.original still exists, remove only the junction and restore the original name:
rmdir "C:\Work\SampleData"
ren "C:\Work\SampleData.original" "SampleData"
Run rmdir without /S. Removing only the directory junction leaves its target directory intact. Verify that C:\Work\SampleData opens before starting the application. The copy at D:\Moved\SampleData is still there; review any work done after switching, since the original may now be older.
If you already deleted SampleData.original, make a verified copy of D:\Moved\SampleData back to a separate temporary folder on C: first. Then remove the confirmed junction with rmdir, rename the restored folder to SampleData, and test it. Ensure C: has enough space before starting this rollback. Never run a recursive delete against a path until you have confirmed whether it is a real directory or a junction.
Doing this with AiCleanDisk Pro
AiCleanDisk Pro can move eligible folders to another NTFS drive and leave a junction at the old path. It checks destination free space, identifies programs holding a folder open, verifies the copy, and records migrations so you can move an entry back or recreate a missing junction. It also warns against moving some folders, including OneDrive. Scanning and cleaning the system drive are free; moving folders requires a license. If you first need to work out which folder is taking space, see the guide to a C drive that fills up again.
The manual method is enough when you know the folder and can verify every step yourself. Keep a separate backup either way, and keep the destination drive letter stable after the move.
Microsoft documents the Robocopy options and the mklink /J syntax.