PrettyPath

Formats a path for use in user displays, trim it beautifly.
PrettyPath is useful for trimming down long directory paths or abbreviating them. No attempt is made by PrettyPath to determine the validity of the entered path's syntax or if the path already exists on the server.
The output of PrettyPath is meant for display purposes only. It should not be used programmatically to pass paths to the FileSystemObject for example.
Parameters:
sPath
Required. String.
The path to format for display. Can be a virtual, relative or absolute path to a file or folder.
hLen
Optional. Integer. Default: 3
Each path element will stop being displayed after this length.
Value can be 0 or greater.
Regardless of the remaining characters in the element, they will be replaced with three dots as placeholders "...".
 Example:
  if hLen is 2 and the path entered is "c:\winnt\system32" then PrettyPath will format the path as
  "c:\wi...\sy...";
  If hLen is 0, the path would be "c:\...\..."
bFile
Optional. Boolean. Default: False
Show the file name (if path is determined to be a file by prettypath). If set to true, the bExtOnly argument is ignored and the file name in it's entirety (including extension) is shown. Does nothing if the path entered is determined to be a directory path.
bExtOnly
Optional. Boolean. Default: True
Show the file extension (if path is determined to be a file by PrettyPath). If True, file extension is shown. If false, extension may be removed depending on the size of hLen.

Private Function PrettyPath(byval sPath, byval hLen, byval bFile, byval bExtOnly)
 Dim elements, i, tmp, bLast, sElm, sDelim, chopsize
 Dim showfullfilename, showfileextension
 chopsize = hLen
 showfullfilename = bFile
 showfileextension = bExtOnly
 if isnull(chopsize) then chopsize = 3
 if isnull(showfullfilename) then showfullfilename = false
 if isnull(showfileextension) then showfileextension = true
 bLast = false
 sDelim = "\"
 if instr(sPath, sDelim) = 0 then sDelim = "/"
 elements = split(sPath, sDelim)
 for i = 0 to ubound(elements)
  sElm = elements(i)
  if len(sElm) > 5 then
   if i = ubound(elements) then
    if showfullfilename then
     tmp = ""
     exit for
    elseif showfileextension then
     tmp = right(sElm, len(sElm) - instrrev(sElm, "."))
     bLast = true
    end if
   end if
   if chopsize > 0 then
    elements(i) = left(sElm, chopsize) & "..."
   else
    elements(i) = "..."
   end if
   if showfileextension and bLast then
    elements(i) = elements(i) & tmp
   end if
  end if
 next
 PrettyPath = Join(elements, sDelim)
End Function

byval sPath, byval hLen, byval bFile, byval bExtOnly

if hLen is 2 and the path entered is &#34;c:\winnt\system32&#34; then PrettyPath will format the path as<br/>&#34;c:\wi...\sy...&#34;;<br/>If hLen is 0, the path would be &#34;c:\...\...&#34;

Views 874 Downloads 284

'FSO', 'PrettyPath', 'beautiful', 'trim', 'abbreviate', 'change', 'convert', 'replace', 'substitute', 'control', 'show', 'fit', 'width', 'NotMyWork'

ANmarAmdeen
333
File System Classic ASP
Revisions

v1.0

Needs