Windows 10 shows a list of recent files in the explorer. Is there a possibility to exclude certain folders (recursively) from being shown in this list?
5 Answers
This problem was bugging me too. Turns out, this is ridiculously simple. Bear with me.
You let Windows pick up the unwanted files and/or folders in the recent list, then go to Quick Access (make sure recent files and folders are displayed!), and simply right click and remove. And voilá - Windows will never add the same file or folder again to any list of recent files. Never. They won't even appear in the right click menu of Windows Explorer.
This automated global "ban list" in Windows is reset if you clear File Explorer history (Folder Options / General
)
Now I would love to know if that is possible to somehow manually edit this "ban list", and add folders to it. I couldn't figure out a way to do this yet.
-
20This might not do what everyone wants. When I remove a folder from the Frequent Folders then open a file in that folder then the file is still put into the recent files list (unless I have removed the file specifically). Dec 4, 2016 at 3:04
-
7This doesn't allow you to recursively ignore a folder, only each and every file as they appear. Feb 16, 2020 at 12:09
-
-
2@Rob: No, that solution prevents any file/folder from comparing in the recent objects list, not files in some path.– TocApr 28, 2022 at 15:10
There is no built-in capability to exclude a folder and all its files and subfolders from Recent Items. You can only hide individual files, after-the-fact, and removing folders from Quick Access does not prevent files contained in them from being added to Recent Items.
To address this limitation of Windows, Bitsum developed a small app named Recent Files Exclusions. It works by monitoring the recent items list and pruning it of excluded files in real-time.
Directly from File Explorer (exploring shell:recent
folder in address bar): just use the search box at the top-right of the window and type something like
-linktarget:d:\bat\
to hide all links to files/folders in thed:\bat\
folder, i.e. matchingd:\bat\*
criterion;-linktarget:d:\bat\a
to hide all links to files/folders matchingd:\bat\a*
criterion;-linktarget:"d:\bat\a b"
(note that path with spaces are enclosed in double quotes);-(kind:Link;Folder linktarget:"d:\bat\a b)"
(hides only folders but shows files).
Resources:
- Windows Search Overview
- Windows Search Features
- Advanced tips for searching in Windows
- How to Use Windows’ Advanced Search Features: Everything You Need to Know
- Advanced Query Syntax:
The Advanced Query Syntax (AQS) is used by Microsoft Windows Desktop Search (WDS) to help users and programmers better define and narrow their searches. Using AQS is an easy way to narrow searches and deliver better result sets. Searches can be narrowed by the following parameters:
- File kinds: folders, documents, presentations, pictures and so on.
- File stores: specific databases and locations.
- File properties: size, date, title and so on.
- File contents: keywords like "project deliverables," "AQS," "blue suede shoes," and so on.
Furthermore, search parameters can be combined using search operators...
Honestly, I do not know any method to prevent creating links to particular items in the shell:recent
folder. However, if you want delete particular links from there as soon as possible, then adapt any of next scripts for your purposes (keep in mind that files in the shell:recent
folder are all links (shortcuts):
-
4That seems to just add a parameter to the current view, and not affect Quick View in any way. I go back to Quick View and all the excluded files are still there. Feb 16, 2020 at 12:09
Open Windows Explorer, Click View tab on the top windows, click option at upper right side the windows, at General tab untick Show recently used files in Quick access and Show frequently used folder in Quick access, then click Clear button.
-
14I don't want to clear it. I just want for certain folders that they aren't included. Also in future. Sep 9, 2015 at 12:27
-
-
7Not really. The left part prevents any recent files from being shown, but the question is about preventing some folders from being shown there. However, since I don't think there is a perfect solution to this problem, just disabling the whole thing may be the next best solution for some people. Aug 31, 2020 at 21:09
This PowerShell works great for me.
- You can set a list of paths to monitor.
- The script will make an initial cleanup, then continue to monitor to delete any new file.
- You can set a Task Scheduler to run it every time you logged in.
- In case you need a one time cleanup, just remove the last 3 lines.
# Paths to monitor
$targetPaths = @(
"c:\users\user\videos",
"c:\users\user\photos"
# Add more as needed
)
$recentFolder = [System.IO.Path]::Combine($env:APPDATA, 'Microsoft\Windows\Recent')
function DeleteItem($itemPath) {
Write-Host "Deleting item: $itemPath"
Remove-Item -LiteralPath $itemPath -Force
}
# Delete existing shortcuts on init
Get-ChildItem -Path $recentFolder -Filter "*.lnk" | ForEach-Object {
$link = (New-Object -ComObject WScript.Shell).CreateShortcut($_.FullName)
foreach ($targetPath in $targetPaths) {
if ($link.TargetPath -like "$targetPath\*") {
DeleteItem $_.FullName
break
}
}
}
# FileSystemWatcher to monitor changes in the folder
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = $recentFolder
$watcher.Filter = "*.lnk" # Monitor only shortcut files
# Event action
$action = {
$file = $Event.SourceEventArgs.FullPath
Write-Host "Shortcut detected: $file"
$link = (New-Object -ComObject WScript.Shell).CreateShortcut($file)
foreach ($targetPath in $targetPaths) {
if ($link.TargetPath -like "$targetPath\*") {
DeleteItem $file
break # Break out of the loop if a match is found
}
}
}
# Register events
Register-ObjectEvent $watcher 'Created' -Action $action
Register-ObjectEvent $watcher 'Changed' -Action $action
Write-Host "Monitoring shell:recent"
while ($true) {
Start-Sleep -Seconds 5
}