2

I (and my colleague) are having this problem with 32-bit applications on a 64-bit Windows 7 OS. We have also found the same problems when we invoke a 64-bit application and pass a path as described below as a parameter in cmd.exe.

Given the path "C:\dir1\dir2\file1.txt", we have some 32-bit applications that don't appear to be able to consistently resolve that path and find the file if there is a hidden file of a particular naming structure causing it to lose it's way.

For example, given the directory/file structure:

\dir1
    \dir2
        \file1.txt
    \.dir2Blah

Of importance is that the "hidden" file's name starts with the same characters as those which indicate a directory at that same level of the hierarchy. What comes after that in the hidden file's name is irrelevant. It could be called ".dir2Whatever".

The problem is that more often than not (but not consistently always) some 32-bit applications we use can't find the file1.txt file. We're told it can't be found or it doesn't exist, etc. in the application. Using Process Monitor, we found the reason appears to be that while the path being asked for is C:\dir1\dir2\file1.txt, the path being evaluated by the the Windows system is C:\dir1\.dir2Blah\file1.txt.

We have found that some 32-bit applications appear to be able to work fine with those (what I would call) erroneous paths and successfully find the files in question but others do not.

As I said above, we have also found we can reproduce the problem with 64-bit applications if we try to open the file through a cmd.exe prompt; for example, "textpad.exe \dir1\dir2\file1.txt".

We've "googled" this problem for 2 days because we're completely stumped and cannot believe that no one else has ever encountered this if it's so "easy" to reproduce. My colleague and I are both able to cause the failure; not consistently, but file access will fail more than half the time when we set up the structure I described.

I've included a picture of Process Monitor showing this failure in two applications but succeeding in a third...here.

Can anyone tell me what is going on? First, why is it changing the path to use that hidden file rather than the directory name provided? And, more importantly, how can we make it stop ;-)?

Cheers, jtm

Added later:

Here's the "dir /x" output for a directory where I'm having this problem.

24/05/2017  12:17 PM  <DIR>                    .
24/05/2017  12:17 PM  <DIR>                    ..
24/05/2017  12:17 PM           12 BLAHTS~1     .blahtst
23/05/2017  03:06 PM          104 JSHINT~1     .jshintrc
24/05/2017  12:16 PM  <DIR>                    blah
24/05/2017  12:16 PM            0              blank.txt
24/05/2017  12:15 PM        6,624 INDEX~1.HTM  index.html
24/05/2017  10:48 AM  <DIR>                    js

It also indicates how we stumbled on the problem. I have an html file that is trying to load a JavaScript file under the /js directory, but there is also a .jshintrc file at the same level and my old Apache server can't find the files to serve them. If I remove the .jshintrc file, I can get around this, but this project isn't one I created and I'm leery of just removing things willy nilly.

Joanne McGraw
  • 49
  • 1
  • 3
  • Can you paste the code you are using to open the file? Knowing the language/API call will likely help. – Drew Hoskins May 24 '17 at 19:15
  • I wasn't using any "code", just the interface of the applications in question. As I just noted in an update to my post, a colleague just installed a 64-bit version of the same application we use in 32-bit (TextPad 7, which you can download a demo of). He was able to cause the same problem when he invoked Textpad with the path from a cmd.exe prompt – Joanne McGraw May 24 '17 at 19:27
  • I *think* what's going on is **Short File Names**.. Can you show the output of `dir /X C:\dir1` ? (at least the rows corresponding to `dir2` and `.dir2blah`) – Ben Voigt May 24 '17 at 20:15
  • Another possibility is the Virtual Store (which would explain why only 32-bit apps are affected). Check whether there's any conflicts under `%APPDATA%\Local\VirtualStore` for any of the paths involved. – Ben Voigt May 24 '17 at 20:21
  • I thought something similar, except even the short names should resolve differently. The following is one of my actual test directories: `code 24/05/2017 12:17 PM 12 BLAHTS~1 .blahtst 23/05/2017 03:06 PM 104 JSHINT~1 .jshintrc 24/05/2017 12:16 PM blah 24/05/2017 12:16 PM 0 blank.txt 24/05/2017 12:15 PM 6,624 INDEX~1.HTM index.html 24/05/2017 10:48 AM js ` – Joanne McGraw May 24 '17 at 20:25
  • Sorry, I can't figure out how to get that dir /x to list out properly in the comment above. Ben, my %APPDATA% points directly to Roaming, but I can view my AppData\Local\VirtualStore and the only directories in there are "Program Files" and "Windows" type directories. Nothing remotely like my names – Joanne McGraw May 24 '17 at 20:37
  • Using TextPad 7.6.4 32-bit on Windows 7 x64, I am unable to reproduce your problem. I suspect the problem might be caused by buggy third-party software on your system, e.g., anti-virus. Are you able to test on a freshly installed system, perhaps in a VM? – Harry Johnston May 24 '17 at 22:57
  • Harry, thank you for taking the time to do this. Your comment led me to try two more colleagues' systems. I can reproduce the problem on one but not the other. The three systems exhibiting the problem have all been in use for 2+ years (mine=5). The one that works has been in use less than 2 years. It's possible that standard software installed or configured by our IT dept previous to 2 years ago may be contributing. I am contacting them about this now. Previously reported performance issues occurring dept wide happen on the 3 machines but not the new one, too. Thank you for the suggestion! – Joanne McGraw May 26 '17 at 16:57

0 Answers0