LFN (Long File Name) -> 8.3 (DOS-Filename)

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

simi

Betreff: LFN (Long File Name) -> 8.3 (DOS-Filename)

BeitragSo, Feb 25, 2007 14:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo....

Manchmal braucht ein externes Programm als Parameter ein Dateipfad, der im DOS-Format 8.3 ist.

Bsp:
lfn -> C:\Dokumente und Einstellungen\Simon\Eigene Dateien\uP\Datenblätter\80C51-Instruction Set.pdf
8.3 -> C:\DOKUME~1\Simon\EIGENE~1\uP\DATENB~1\80C51-~2.PDF

Code: [AUSKLAPPEN]
Framework brl.basic
Import brl.system

SuperStrict

Extern "win32"
   Function api_GetShortPathName:Int(lpszLongPath:Byte Ptr, lpszShortPath:Byte Ptr,cchBuffer:Int Ptr) = "GetShortPathNameA@12"
End Extern


Function getshortpathname:String(path:String)
   Local longpath:Byte Ptr = MemAlloc(path.length+1)
   Local shortpath:Byte Ptr = MemAlloc(path.length+1)
   Local size:Int = path.length+1
   Local rValue:String = ""
   
   For Local i:Int = 0 To path.length-1
      longpath[i] = path[i]
   Next
   longpath[path.length] = 0
   
   size = api_GetShortPathName(longpath,shortpath,Varptr size)
   
   If size Then rValue = String.FromBytes(shortpath,size)
   
   Return rValue
End Function

Local lfn:String = RequestFile("blopp!")
Print "lfn -> "+lfn
Print "8.3 -> "+getshortpathname(lfn)


Wenn der Pfad nicht existiert wird ein leerer String zurückgegeben....

Quelle: http://www.devx.com/vb2themax/Tip/18987

Blitzcoder

Newsposter

BeitragSo, Feb 25, 2007 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Man kann die NTFS Unterstützung für 8.3 Namen unter Win abschalten, dann wird das so nichts. Im Grunde wäre es doch auch sinniger, sich diese Funktion selbst zu schreiben.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

simi

BeitragSo, Feb 25, 2007 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
mh.... und wie wird das dann von solchen Programmen gehandelt, die halt die Dateinamen im 8.3-Format haben müssen? Funktionieren dann die einfach nicht mehr?

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group