Ever since Windows 95, Microsoft has only allowed file paths up to 260 characters [which, to be fair, was much nicer than the 8 character limit previously]. Now, with a registry tweak, you can exceed that amount in Windows 10.
As pointed out by the How-To Geek, to enable long file paths, you’ll need to edit the registry. Start by following these steps:
- Open the Start menu and type “regedit.” Launch the application.
- Navigate to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
- Right-click the value “LongPathsEnabled” and select Modify.
- Change “Value data” from 0 to 1.
- Click OK.
Now you’ll be able to use much, much longer file paths. The one caveat is this may cause some compatibility problems with older 32-bit applications. If you don’t use anymore 32-bit software or simply have a strong need for very long file paths, this tweak should help you.
How to Make Windows 10 Accept File Paths Over 260 Characters | How-To Geek
Who is this article for? Incydr Professional, Enterprise, Horizon, and Gov F2 Incydr Basic, Advanced, and Gov F1
Instructor, no.
Incydr Professional, Enterprise, Horizon, and Gov F2, no.
Incydr Basic, Advanced, and Gov F1, yes.
Overview
If you are using the Windows operating system and your backup status isn't reaching 100%, one possible cause could be that you are backing up file paths and names that exceed a 255-260 character limit. This article provides a technical explanation for this issue and a recommended solution.
Affects
The Code42 app running on Windows [all versions, x86 and x64]
Before you begin
If you haven't done so already, you may want to start by reading our Windows solutions guide for Unable to Back Up X Files issues.
Under the hood
Microsoft has a core set of application programming interfaces [APIs] that programmers can use to interact with applications in the Windows operating system. These programming interfaces are often referred to as the Windows API. The Windows API imposes a maximum filename length such that a filename, including the file path to get to the file, can't exceed 255-260 characters.
However, because this is a limitation of the Windows API and not the file system used on the majority of Windows installations [NTFS], some programs can create filenames that violate this limit.
When the Code42 app attempts to read these files for backup, it fails because Windows doesn't know how to handle the file. When this occurs, the following error message displays in the Code42 app service.log:
WARN W196815609_BQTodoWkr 2.os.win.metadata.WindowsMetadataHandler] Problem getting named streams for file={filename}, e=java.io.FileNotFoundException: Could not open file...handleValue is invalid {filename}
Diagnosing
Symptoms of this issue include:
- Your backup never reaches 100%
- The Code42 app is running but certain files stay on the backup to-do list
It can be difficult to correct this issue. If you try to rename, move, or delete the file in Windows, you may receive the following messages:
Recommended solution
Since you are not
able to move the files using Windows Explorer, you must use the subst
command to shorten the file path for the file[s].
The simplest way to fix this is to:
- Substitute the folder that has a long file path with a drive letter [thereby shortening the overall character count for the files contained in the folder]
- Copy or move the files out of the folder into another folder that won't violate the limit
- Delete the mapped folder
You can do this using either of the methods described below.
Method 1: Use the subst command to assign a drive letter to a specific folder
You can substitute a specific folder path with a drive letter using the Windows Command Prompt and the subst
command. The command follows the format:
subst
For example, if you
wanted to replace the folder path C:\Example\File\Path
with the drive letter Y
, you would enter:
subst Y: C:\Example\File\Path
Now the Y:
drive is "mapped" directly to the folder. Since you have substituted most of the long file path with Y:
, it no longer violates the character limit. You can now move the files out of this folder to a folder with a shorter file path.
After you move the files, you can delete the virtual drive by running the subst
command with the /d
parameter. To delete the
Y:
drive created in the example above, enter:
subst Y: /d
Method 2: Use visual subst to assign a drive letter to a specific folder
If you aren't comfortable using the Windows Command Prompt, there is a free utility called Visual Subst that you can use to achieve the same results. Code42 does not create or test this software. If you choose to use it, we cannot provide support.
Information about the program and an example of its usage can be found at:
- Visual Subst
- How-To Geek: Walkthrough using Visual Subst or SUBST Command in Windows Command Prompt
External resources
- Microsoft documentation on naming files, paths and namespaces
- Blog discussing the logic surrounding the issue
- Microsoft documentation for using the SUBST command
- Wikipedia article about the SUBST command
Related topics
- Unable to back up files [Windows]
- //support.code42.com/Administrator/6/Monitoring_and_managing/File_and_folder_hierarchy
- Use include and exclude filters
- Why are files "missing" from my backup selection?
- Renamed or "missing" external drive stops backup