[Date Prev][Date Next][Subject Prev][Subject Next][ Date Index][ Subject Index]

Re: long filenames



** Reply to message from MGochnauer  on Tue, 21 Mar 2006 08:56:02
-0400


> Proper handling of long filenames awaits rewriting some of the core
> XyWrite "engine" so that it is fully 32-bit...
> I've corresponded with NB about this, and came away with the
> impression that the conversion was on the to-do list, but not just
> around the corner...
> This is deeply disappointing, especially as the Windows world begins
> to inch toward 64-bit.

It's incredibly easy to fix, though (NB is not exactly the most nimble software
publisher on the planet). If you use U2 (either in Xy4 or NB), you can do the
following to fix it. Moreover, it overcomes a common XyWrite problem with
directories which, for various reasons (such as the Archive bit), XyWrite can't
"read" or ChangeDir to. Works in NT or 9x.

Attached, a ZIPfile containing SFN.EXE as well as a small frame (SFN.FRM) to
*insert* into U2.

Locate SFN.EXE in Editor's directory.

Insert SFN.FRM into U2 directly above frame {{5dirlfn*}} -- SEarch for
{{5dirlfn*}}, put your cursor on the first curly brace "{", and MErge SFN.FRM,
then LOADHELP. SFN.FRM *MUST* be placed in this location!! The
actual framename of SFN.FRM is {{5caL*,meL*,reL*}}.

Usage: Add "L" to your normal CAll, REad, or MErge command (e.g. CAL, REL,
MEL), and execute with  instead of . Works with files anywhere on
your disk. It accepts wildcards (although the filemask must include enough
specificity that the target filename is *unambiguous*, otherwise you might get
the wrong file). Do NOT use quotation marks in the filename! It works with
UNC files too (files on LAN networked machines). If the length of the
d:\path\filename exceeds 80 chars (in Xy4), use frame U2L to issue a "Large"
command. If Stack is running, the SFN of your CALled LFN is Stacked (and if
your keyboard is set up logically, then the LFN was also Stacked when you
issued the CAL command -- so you've now got both forms in the Stack -- but if
you think about it, henceforth you'll only need the SFN, at least in XyWrite).

Examples:

cal C:\Program Files\ObjREXX\rexx.txt
cal C:\Prog*\Obj*\r*.txt
cal \\COMPUTERB\C\Program Files\ObjR*\rexx.txt
rel C:\Pr*\ObjREXX\r???.txt
mel C:\Pr*\ObjREXX\rexx.t*

The file (under its 8.3 ShortFileName) appears instantaneously in Xy4, a tad
slower in NB (NB really struggles with DOS interaction). Note that this frame
will not let you *create* a LongFileNamed file where none previously existed!
You can only CAll|REad|MErge existing LFN files! Presumably, XyWriters never
create LFNs anyway (because they *can't*) -- and if they do need to render a
file into an LFN, they know how to do it (DOS REName command). Nor can you
SAve or STore a file as an LFN where no LongFileName already exists with this
method (although U2 has other good methods for that); there's simply no NEED
for it, because you are already using the file in it's ShortFileName (8.3 or
SFN) form (even if it also has a LongFileName), and saving the SFN also "saves"
the LFN (so to speak).

-----------------------------
Robert Holmgren
holmgren@xxxxxxxx
-----------------------------

Attachment: SFN.ZIP
Description: Binary data