Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Very long path #340

Merged
merged 8 commits into from
Oct 28, 2022
Merged

Very long path #340

merged 8 commits into from
Oct 28, 2022

Conversation

schinagl
Copy link
Contributor

@schinagl schinagl commented Jul 24, 2022

Problems

Ever since Winfile supports path lengths up to 256 characters. In certain situations it is useful to have more. Windows supports 32767 chars, but this PR aims less and increases up to 1024 chars
It also addresses the request from #50

Changes

  • MAX_PATH occurrences were replaced with MAXPATHLEN so that there is one common definition for the length with [c7a11bb]. This could be useful also on the main trunk.
  • Added the longPathAware manifest
  • Added verylongpath.reg file which lifts the 256 character limitation for Windows 10 system >= 1607. Can be found here
  • Increased the stack size so that filling the Goto-Cache survives 512 levels of recursion

How to test

  • Apply verylongpath.reg from here as admin
  • Take TestDeepPath.bat and run it. A path with about 750 chars is created. Now play around and navigate through it. Do all things which you assume should work.

Please report your feedback to this issue.

@schinagl schinagl marked this pull request as draft July 24, 2022 06:39
@schinagl schinagl mentioned this pull request Jul 24, 2022
@schinagl
Copy link
Contributor Author

schinagl commented Jul 31, 2022

Had Winfile.exe with 1024 characters running for a week during my everyday use, and it worked flawlessly.
There seem to be no sideeffects on the operations <= 256 characters and the operations > 256 also work really well. Who ever wrote this thing 30 years ago and implemented the limits in WinFile, really did it very well :-)

Anyhow it would be nice if you could help testing this. A 64bit Windows version from my private branch
can be downloaded here. I called this version 10.1.4.495. This is just my internal number.

Most likley there will be an official version with precompiled binaries having many changes from the last year in during the course of this year.

Thx for your help in testing this.

@schinagl schinagl marked this pull request as ready for review August 14, 2022 06:48
@schinagl
Copy link
Contributor Author

Rebased onto #341 merge to master

Hermann Schinagl added 2 commits September 22, 2022 06:41
… can be the same length as MAXPATHLEN when it appends"

This reverts commit 44991cb.
@schinagl
Copy link
Contributor Author

schinagl commented Sep 22, 2022

Resolved conflicts due solution brought in with #344
Basically it now comes down to a few very simple things

  • Replace MAX_PATH with MAXPATHLEN in a few places, because MAXPATHLEN is the winfile-way to express this.
  • Added the longPathAware manifest to the .manifest file
  • Increased the stack size in the .vcxproj so that filling the Goto-Cache survives 512 levels of recursion. (tried it)

Voila, and this works perfect since months on my side

@schinagl
Copy link
Contributor Author

Any news here? Can we add this since it almost contains no code changes anymore.... ?

@craigwims
Copy link
Contributor

reviewing again.

@craigwims
Copy link
Contributor

I'm good with this PR. Shall I merge it now or wait for #312?

@schinagl
Copy link
Contributor Author

Merge it. Will rebase 312 if needed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants