Copying nameless files

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • c627627
    Enthusiast
    • Sep 2014
    • 22

    Copying nameless files

    Probably nothing can be done about this but here's an interesting one.
    There is a way to have two different nameless files. This is how:


    Rename a file with a blank name: Turn on the Num Lock key, hold down ALT key and type (on the Numeric pad) 0160 or 0255
    Press Enter to save the change.

    Beyond Compare treats these two different files the same because they are both nameless even though they are different. So you can't copy both of them when comparing folders.
  • Zoë
    Team Scooter
    • Oct 2007
    • 2666

    #2
    Do you have those files both in the same location somewhere already?

    Alt+0160 enters a No Break Space (U+00A0)
    Alt+0255 enters a Latin Small Letter Y with Diaeresis (U+00FF)
    Alt+255 (no leading 0) also enters a No Break Space (U+00A).

    So both of your methods for entering a nameless file should produce identical filenames, and BC is correctly detecting them as such. If you used a different invisible character, for example Narrow No Break Space (U+202F) (Alt+202F), it would be detected as a different filename and the files would not align.
    Zoë P Scooter Software

    Comment

    • c627627
      Enthusiast
      • Sep 2014
      • 22

      #3
      I am glad I posted, so there is a third way to create a nameless file, using 255 and not just 0255 and 0160. Thanks for that.

      Yes it is possible to create three nameless files in the same folder but Beyond Compare will have problems synchronizing them because it would think they have the same names, but they are three different files using three different nameless names, three different files in the same folder...

      I cannot create a nameless file with ALT+202F however.


      To further clarify, I wanted to use two spacers in the Classic Shell menu for Windows 8/10.
      I used an invisible icon, created two shortcuts to it, and then the invisible shortcuts are renamed using the methods in post #1 of this thread.

      So there are two different nameless iconless files in one folder. Those two files show up separately in Beyond Compare but cannot be synchronized if you try.


      I am impressed with your knowledge of nameless files, just out of curiosity are you able to create a nameless file using ALT+202F because I cannot.

      Comment

      • Zoë
        Team Scooter
        • Oct 2007
        • 2666

        #4
        There are multiple ways to enter Unicode characters on a Windows system. They're all listed with comments here, and you should take a look at that.

        I didn't realize there was a distinction between the "Alt nnnn" and "Alt+nnnn" methods before, so with further experimentation:

        Alt 255 enters a No Break Space character using the "Code-page specific" method listed on that page.
        Alt 0160 enters a No Break Space character using the "Input-language specific" method.
        Alt+00A0 enters a No Break space character using the "Universal" method as long as you have EnableHexNumpad set in your registry.

        In all three cases, you're getting the exact same character and the exact same filename.

        I tried your method, creating a shortcut and renaming it using "Alt 255" and it successfully renamed as an invisible link. When I then tried creating a second shortcut using "Alt 0160" Windows gave me an error that the file already existed and forcibly added a "(2)" to it. If I instead copied the existing shortcut and pasted it into the same directory, Windows stripped the no break space and created a shortcut without any characters before the ".lnk" portion. That's the only way I was able to easily get two invisible files in the same directory. The other alternative would be if one of them had two no break spaces instead.

        If you want to verify what you actually have as filenames, load the folder in BC, select the two files, and use the "Copy filenames" command, then open the text compare, change the file encoding to "Unicode", and paste them in, then turn on "Hex details" at the bottom of the screen. When you cursor over the characters it should highlight whatever the 2 byte code is. If you can't figure it out, use the Tools > Save Snapshot command to save a copy of the directory listing and email it to [email protected] and we can take a look at it.

        Using the "Alt+nnnn" (Universal) method, I was able to create nameless files using any of the Unicode whitespace characters. It did require setting the EnableHexNumpad registry value, and Alt+202F only worked if there wasn't a "File" menu in the window I had open, since the "Alt F" triggered that.

        The one exception was the plain space (U+0020) character. Explorer didn't allow me to create a shortcut with that name, but I could rename it from the command line using

        rename a.lnk " .lnk"

        In the end, I was able to create 18 different nameless files, 17 with a single invisible character filename, and 1 with an empty filename (plus the ".lnk" extension). BC is able to show all of them and copy them to another directory without any trouble.

        If you're copying the files from an NTFS drive to a FAT32 one, or across a network to a different computer you may be seeing different behavior, and there isn't anything we can do about that. Some of the programming interfaces we use have limits in what characters they can represent, and some file servers will convert the filenames when they're transferred over the network or stored to disk.
        Zoë P Scooter Software

        Comment

        • Zoë
          Team Scooter
          • Oct 2007
          • 2666

          #5
          If you do want to look into the filesystem/OS/network issue as a possibility, we'll need a bit more info. The easiest way to get it is if you install a portable copy of Beyond Compare 4. After you launch it, open an empty "Folder Compare" session, then click on the gear button on the left side of the log. Check the "Debug messages" checkbox in the new dialog, then back out. Once that's done, load the two base folders you're trying to sync. If everything is set up correctly you'll see some debug messages that look like this:

          Drive information for : C:\
          Volume Name:
          Drive Type: DRIVE_FIXED
          File System: NTFS
          Max Name Length: 255
          Codepage: 1200
          Samba Detected: False
          File System Flags: Windows 7
          Zoë P Scooter Software

          Comment

          • c627627
            Enthusiast
            • Sep 2014
            • 22

            #6
            Thank you for the info, it's excellent I will look into it.
            When I created those nameless files, I wrote a text file about how I did it but now I cannot replicate creating two files in the same folder any more, just like you.

            But I do have two nameless files. I cannot copy them from folder to folder in Windows 8 operating system either but I can in Windows XP. Also weird.

            I'd like to do what you suggest.

            Here is a screenshot of what file 1 is and what file 2 is. Both are nameless shortcut links to Windows Desktop folder.
            Attached Files

            Comment

            • Aaron
              Team Scooter
              • Oct 2007
              • 15996

              #7
              Hello,

              Thanks for the screenshot. If you are able to reproduce anything more or just have any general questions, could you produce a detailed log using Zoe's instructions? The screenshot shows the general lack of character, but doesn't let us know which invisible character is present to make it happen. We can see if there is any hidden information with:
              If you want to verify what you actually have as filenames, load the folder in BC, select the two files, and use the "Copy filenames" command, then open the text compare, change the file encoding to "Unicode", and paste them in, then turn on "Hex details" at the bottom of the screen. When you cursor over the characters it should highlight whatever the 2 byte code is. If you can't figure it out, use the Tools > Save Snapshot command to save a copy of the directory listing and email it to [email protected] and we can take a look at it.
              Aaron P Scooter Software

              Comment

              • c627627
                Enthusiast
                • Sep 2014
                • 22

                #8
                The reason I have not is that I had trouble following those directions so I am asking for clarification. Here is my understanding and here is what is unclear:

                1. Beyond Compare 4 > Folder Compare > [on the left window pane] Browse to folder containing the two files.

                2. Highlight the two files >

                now

                where is the "Copy filenames" command please?
                how do I get to "text compare" from here?
                how do I change the encoding to "Unicode"?
                what does "paste them in" mean?

                Thank you for your time.

                Comment

                • Aaron
                  Team Scooter
                  • Oct 2007
                  • 15996

                  #9
                  The Copy filenames command is in the right-click context menu after you have right clicked on the selection of files.

                  You can use the Session menu -> New Tab or New Window command to open a new instance of BC4, then pick to open a blank/new Text Compare.

                  The Encoding is found in the Text Compare's Session menu -> Session Settings, Format tab. Set for Left and Right.

                  Paste is click into the Text Compare, then right click and Paste to paste the current clipboard into the empty pane.

                  Or, you can open your Folder Compare, and then use the Tools menu -> Save Snapshot, and save a folderLeft.bcss and then again a folderRight.bcss file set which you can email to us at [email protected] along with a link back to this forum thread.
                  Aaron P Scooter Software

                  Comment

                  • c627627
                    Enthusiast
                    • Sep 2014
                    • 22

                    #10
                    1. Beyond Compare 4 > Folder Compare > [on the left window pane] Browse to folder containing the two files.

                    2. Highlight the two files

                    3. Right click on them > Copy filename command [sixth from the bottom]

                    4. Session > New TAB > Text Compare

                    5. Session > Session Settings > Format TAB > Left encoding override > Unicode > Right encoding override > Unicode > OK

                    6. Right click on empty space in the left pane > Paste

                    7. View > Hex Details


                    Now
                    What does "When you cursor over the characters it should highlight whatever the 2 byte code is." mean?


                    Here is the bcss file:
                    Attached Files

                    Comment

                    • Aaron
                      Team Scooter
                      • Oct 2007
                      • 15996

                      #11
                      Hello,

                      And these are the only two 'blank' files you have created, correct?

                      Here's the summary: you have two files here, one with Alt+0160 and one that is completely blank. The completely blank version was created if you attempt to copy the Alt+0160 (No Break Space) using Explorer. Explorer strips the No Break Space character. If you try to copy either file again, it would detect as a duplicate, since the stripped version already exists.

                      Beyond Compare can copy the Alt+0160 No Break Space if you are copying between two NTFS harddrives that are local on the computer. If you copy to a Fat32, over the network, or another protocol, it is very likely the destination device will strip out the Alt+0160 No Break Space character.

                      If you need to create duplicates of this file, you cannot have exact matches, just like you can't have two files named "New Text File.txt" in the same folder, you cannot have 0160.lnk and 0160.lnk in the same folder, or the stripped version .lnk and .lnk. Each name must be unique. That is why alt+0160.lnk and .lnk can exist in the same folder: they appear to be the same visually, but they are actually different names.

                      You could create multiple copies by creating multiple No Break Spaces:
                      (Alt+0160).lnk, (Alt+0160)(Alt+0160).lnk, (Alt+0160)(Alt+0160)(Alt+0160).lnk, etc. However, if you try to copy these with Explorer or to an unsupported destination device, all of the spaces will be stripped out, and only one file (.lnk) can exist in the destination.
                      Aaron P Scooter Software

                      Comment

                      • c627627
                        Enthusiast
                        • Sep 2014
                        • 22

                        #12
                        Thank you very much for your very informative post. I now understand the reasons behind the copy limitation, thank you very much.


                        Creating multiple copies by creating multiple No Break Spaces is something I was not aware could be done, it's very useful...

                        Comment

                        • c627627
                          Enthusiast
                          • Sep 2014
                          • 22

                          #13
                          ...I just wanted to add something very important, I have a multi boot and rebooting into Windows XP absolutely allows Beyond Compare to sync these files so this does appear to be something that was possible in earlier Operating Systems...

                          Here they are, both of them, and they can be synced under Windows XP:
                          2NamelessIcons.zip
                          Last edited by c627627; 05-Nov-2015, 07:13 AM.

                          Comment

                          Working...