48

When using one of the Quick Access links in Windows 10 File Explorer, the address bar displays the following:

ThisPC > Documents

This is really annoying for navigating around as I often need to get to another folder near Documents, but I can't click the parent folder in the address bar because its not there and if I click the up or back button on the address bar it just takes me back to This PC.

As a developer this is just epically annoying. I have to navigate quickly around the file system all the time. Is there a way to just always have the address bar work off of the absolute path like old windows did?

Run5k
  • 16,463
  • 24
  • 53
  • 67

7 Answers7

9

The most reliable method to do what you want is to pin your preferred folders to the Quick Access area after you have navigated to them via a UNC path.

For example, the workgroup laptop on my home network is called DELL-INSPIRON15, so I can enter the following path in the address bar:

\\DELL-INSPIRON15\Users\Run5k\Documents  

However, if your machine is on an Active Directory domain you will need to add c$ to the syntax in order to map your local Documents folder via a UNC path:

\\DELL-XPS-9100\c$\Users\Run5k\Documents  

After that, right-click Quick Access on the top-left and choose Pin current folder to Quick access.

Do the same for each folder within the Quick Access area, and you should see exactly the behavior that you want when you click on the up-arrow.

Run5k
  • 16,463
  • 24
  • 53
  • 67
4

For an alternative that is "less intrusive", i.e. doesn't involve editing FolderDescriptions or affect the shell namespace, see the alternative answer I recently added to this question: https://superuser.com/a/1768074/881098 . It adds an item to the background context menu of file folders that will navigate to the file system location for folders displaying namespace paths in the Address Bar such as:

  • <Full User Name> (shell:UsersFilesFolder)
  • This PC\Documents

to (aasuming defaults for example only):

  • This PC\Windows (C:)\Users\<UserProfileFolder>
  • This PC\Windows (C:)\Users\<UserProfileFolder>\Documents

...and now back to the original answer...


Not sure if this will have unintended side-effects, but experimenting with the Pictures folder, I deleted the current Quick Access pin, then in the registry, deleted the 'ParsingName' value under:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639} 

and

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{33E28130-4E1E-4676-835A-98395C3BC3BB}

Restarted, navigated to C:\Users\Keith and pinned Pictures to Quick Access. the result was the Address Bar now showed Pictures path as a subfolder of the UserProfile folder rooted in the Desktop:

Explorer Screenshot 1

So then I delected the ParsingName under {f3ce0f7c-4901-4acc-8648-d5d44b04ef8f} (UsersFilesFolder) and that produced the desired result (after restarting Explorer):

Explorer Screenshot 2

Back up HKLM\...\FolderDescriptions before testing.

Keith Miller
  • 10,694
  • 1
  • 20
  • 35
3

The following is valid for Windows 10, I haven't upgraded to 11, so no clue as to how Explorer behavior may have changed.


Though this doesn't force Explorer to always display the file sytem path, it creates a context menu item that allows quick navigation to the file system location.

enter image description here

After execution:
enter image description here

This PowerShell snippet will navigate all open Explorer windows that are currently displaying a namespace junction to their file-system locaiton:

@((New-Object -com shell.application).Windows()).ForEach({
    Try{$_.Navigate2($_.LocationURL)}
    Catch{}
})

To create a context menu shortcut to run this code without window flash:

$PSCommand      = '@((New-Object -com shell.application).Windows()).ForEach({Try{$_.Navigate2($_.LocationURL)}Catch{}})'

$encodedCommand = [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($PSCommand))

$CommandLine = 'cmd.exe /c start /min Powershell -NoProfile -ExecutionPolicy Bypass -EncodedCommand ' + encodedCommand

$Key = 'HKCU:\SOFTWARE\Classes\Directory\Background\Shell\NavToFSLocation'

[PSCustomObject]@{ '(Default)' = 'Open file-system location' 'Position' = 'Top' } | Set-ItemProperty -Path (mkdir $Key -Force).PSPath

New-Item -Path $Key -Name 'Command' -Value $CommandLine

If you prefer a .reg file:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\Shell\NavToFSLocation] @="Open file-system location" "Position"="Top"

[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\Shell\NavToFSLocation\Command] @="cmd.exe /c start /min Powershell -NoProfile -ExecutionPolicy Bypass -EncodedCommand QAAoACgATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AYwBvAG0AIABzAGgAZQBsAGwALgBhAHAAcABsAGkAYwBhAHQAaQBvAG4AKQAuAFcAaQBuAGQAbwB3AHMAKAApACkALgBGAG8AcgBFAGEAYwBoACgAewBUAHIAeQB7ACQAXwAuAE4AYQB2AGkAZwBhAHQAZQAyACgAJABfAC4ATABvAGMAYQB0AGkAbwBuAFUAUgBMACkAfQBDAGEAdABjAGgAewB9AH0AKQA="

Keith Miller
  • 10,694
  • 1
  • 20
  • 35
1

I used to have the same problem. I don't use Quick Access. I use the Quick Launch toolbar and I wanted to have shortcuts in the Quick Launch toolbar that would open a window with the correct path in the Address Bar.

I solved the problem by creating shortcuts where the target is:

C:\Windows\explorer.exe <Full path of the desired target>

Such a shortcut opens a folder window where the path in the Address Bar is the actual path.

zx485
  • 2,337
gvesp
  • 11
0

Install Open-Shell https://github.com/Open-Shell/Open-Shell-Menu

If you don't want the start menu don't install that part. Just select Classic Explorer in the installer. Then open it and click Disable breadcrumbs

Classic Explorer will add it's own annoying toolbar. Go to the View tab, Options, then uncheck Classic Explorer Bar

Derek Ziemba
  • 1,260
0

I've recently been digging into the SHellLink specification, which defines the structures that make up a shortcut (.lnk) file. There is a way to modify shortcuts where the target is a file folder, e.g. This PC > Docuements, so that they always display the true file system path.

All .lnk files have a set of flags that specify the presence or absence of various structures as well as govern link resolution. Among these flags, listed in section 2.1.1 of the documentation specified above,is:

Name Description
NoPidlAlias The file system location is represented in the shell namespace when the path to an item is parsed into an IDList.

Neither of the shortcut com objects expose direct manipulation of the flags, so we have resort to editing the binary .lnk file. Fortunately, this is rather trivial as we only want to flip a single bit and the associated byte is at a fixed offset. I've wrapped this up in a PowerShell function that can modify on or multiple shortcuts at once:

Function Set-NoPidlAlias {
    Param(
            [Alias('FullName')]
            [Parameter(Mandatory, Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)]
            [ValidateScript({(Test-Path $_ -PathType Leaf) -and ($_ -match '\.lnk$')})]
        [String]$Path,        
        [Switch]$Undo
    )
    Process {
        ForEach ( $p in @(Resolve-Path $Path).Path)
        {
            [Byte[]]$LinkBytes      = [IO.File]::ReadAllBytes($p)
        If (! $Undo) {
            $LinkBytes[0x15]    = $LinkBytes[0x15] -bor 0x80
        } Else {
            $LinkBytes[0x15]    = $LinkBytes[0x15] -band (-bnot 0x80)
        }
        [IO.File]::WriteALlBytes($p, $LinkBytes)

}}}

Examples:

> Set-NoPidlAlias c:\users\me\shortcuts\MtySHortcut.lnk
> Set-NoPidlAlias myShortcut.lnk  ### link in current directory
> Set-NoPidlAlias *.lnk           ### all shortucuts in current directory
> gci *.lnk -Recurse | Set-NoPidlAlias   ### all links in current directory and sub-directories.  

After setting (or clearing) the flag, the target path needs to be "touched" by:

  1. Display the file's Properties dialog.
  2. Delete or add a character to the path and then restore the text to the correct path --- this tricks the shell into thinking the link has been edited and the Apply button becomes active.
  3. Click OK or Apply and close.
Keith Miller
  • 10,694
  • 1
  • 20
  • 35
-2

Open Folderoption-Window (Explorer -> View -> Options -> Change Folder- and Search) and open the "View" tab. Under "Navigationarea" you will find an entry to show all folders. Activate it, that should do the trick.

enter image description here

Sorry, the wording might not be correct, I had to translate from my German version.

Albin
  • 11,950