because it's the only bloody thing that works. I'm going through all of the 70 missing files and copying them. I took one of the offending files and made a 7z archive of it in the destination folder - and, much to my surprise, it worked perfectly! I could even extract the file! Hell, I could even work with paths >340 characters! and for completeness's sake - mostly to say I tried it - I did the same with 7zip. Unsurprisingly, it failed to access the files. but as I lack a C compiler, and haven't coded in C in like 15 years, I figured I'd try a few last desperate ideas first.įor the hell of it, I tried making an archive of the offending files with winRAR. unless the paths are shorter than MAX_PATH? gg Microsoft.Īt this point, I was sorely tempted to write my own copy utility that calls the internal Windows APIs that support unicode paths. So, apparently, Microsoft's own workaround for long pathnames doesn't work with its own utilities. I tried it with cygwin's `rsync`, but it sees `\\?\` as denoting a remote path, and therefore fails. I tried this with `robocopy` and cygwin's `cp` they likewise failed. I tried this with the native `copy` command no luck. I then learned (well, learned more about) the unicode path prefix `\\?\`, which bypasses Windows kernel's path parsing, and passes the path directly to ntfslib, thereby indirectly allowing ~32k path lengths. and Lo! It did not work.Īfter installing the hotfix. So, I installed that, restarted as per its wishes. So I couldn't copy those.Īfter some research, I learned that there's a Microsoft hotfix that patches this specific issue! for my specific version! woo! It's like. It turns out that some of the files (70 in total, as I eventually found out) have paths exceeding Windows' MAX_PATH length (260 chars). Friggin' hell.Īlso - and rather the point of this rant: and using a visual utility like windirstat won't work either because of the excluded folders. It didn't finish copying.Īnyway, finding the missing files was easy, but what about any that didn't finish? Filesizes don't match, so writing a script to check doesn't work. My 2yo had apparently been playing with the power strip and its enticing glowing red on/off switch. and found that it lost power around 9:16am. and find that the computer is off! What the hell! I turn it on and check the logs. (I also made sure to turn my monitors and keyboard light off so it wouldn't be enticing to my 2yo.) Cue dramatic music ~Ĭome morning, I go to check on the progress. that external drive is connected via USB, remember? and for some reason, even over USB3, I was only getting ~20mb/s transfer rate, so the process took 20some hours! In the interim, I worked on some projects, watched netflix, etc., then locked my computer, and went to bed. I (barely) managed to fit everything with some pretty tight shuffling.īut. The drive I'm copying it to is smaller, so I enabled compression to allow storing a bit more of the data, and excluded a couple of directories so I could copy those elsewhere. So, I took it out again (joy) and put it back in the enclosure, and began copying the files off. However! It turns out the Seagate external drives use some custom drive header, or custom driver to access the drive, so Windows couldn't read the bare drive. It was a miserable experience, but I finally got it installed. Finding SATA cables was difficult, the motherboard's SATA plugs are in a terrible spot, and my tiny case (and 2yo) made everything soo much worse. Terrible, right? So, I decided to mount it as an internal drive to lower the read/write times. (We've been down a server for two years now because its drive died!)Īnyway, I originally bought my external drive just for backup, but due to the above, I eventually began using it for everyday things. Because of this, our electronics have been. I've been earning just enough to get behind on bills and go without all but basic groceries. So, I haven't had actual gainful employ in quite awhile. Even with official fixes and workarounds. Tl dr: Windows' MAX_PATH is the devil, and it basically does not allow you to copy files with paths that exceed this length.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |