Largo y corto nombres de archivo
Cómo convertir el archivo completo caminos. Los nombres de archivo cortos convertido a Largo nombre de archivo, nombres de archivo Largos para los nombres de archivo Cortos y Picar los nombres de archivo.
Cuando un nombre de archivo se coloca en un formulario o una línea de comandos incluye un
nombre de archivo que el sistema operativo es el uso de los nombres de archivo Cortos (formato 8.3).
La principal razón es que un Corto formato de nombre de archivo no pueden incluir un
el espacio de la carta. Esto funciona muy bien desde el espacio-carta
se utiliza como un archivo delimitador.
Las tres funciones siguientes le ayudarán a convertir entre los
Corto y Largo nombre de archivo. He añadido la Picada nombre de archivo de función
ayudar a la visualización de un nombre de archivo completo, incluyendo la ruta de acceso.
{===================================================}
Función ShortFileName(Const FileName: String): String
{===================================================}
Var
& nbsp & nbsp aTmp: Array[0..255] Of Char
Begin
& nbsp & nbsp Si No FileExists(nombre de archivo), a Continuación,
& nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp Resultado := '
& nbsp & nbsp Final
& nbsp & nbsp Else
& nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp Si GetShortPathName(PChar (nombre de archivo), aTmp, Sizeof (aTmp) - 1) = 0, Entonces
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado:= Nombre del archivo
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp & nbsp Else
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado:= StrPas (aTmp)
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp Final
Fin
{==============================================}
Función LongFileName(ShortName: String): String
{==============================================}
Var
& nbsp & nbsp SR: TSearchRec
Begin
& nbsp & nbsp Resultado := '
& nbsp & nbsp If (pos ('//', ShortName) pos ('*', ShortName)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp pos ('?', ShortName) <> 0) O No FileExists(ShortName), a Continuación,
& nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp { omitir el nombre del NetBIOS, bromista caracteres y nombres de archivo no válidos }
& nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp Final
& nbsp & nbsp Mientras FindFirst(ShortName, faAnyFile, SR) = 0
& nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp { siguiente parte como prefijo }
& nbsp & nbsp & nbsp & nbsp Resultado := '/' SR.Nombre Resultado
& nbsp & nbsp & nbsp & nbsp SysUtils.FindClose(SR) { el SysUtils, no las unidades winprocs procedimiento! }
& nbsp & nbsp & nbsp & nbsp { directory (corte antes de '/') }
& nbsp & nbsp & nbsp & nbsp ShortName := ExtractFileDir (ShortName)
& nbsp & nbsp & nbsp & nbsp Si longitud (ShortName) <= 2
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Romper { ShortName contiene la letra de la unidad seguida de cerca por ':' }
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp Final
& nbsp & nbsp Resultado := ExtractFileDrive (ShortName) Resultado
fin
{=========================================================}
la Función de Picar(PathToMince: String InSpace: Integer): String
{=========================================================}
// 'C:/Program Files/Delphi/DDrop/TargetDemo/principal.pas'
// 'C:/Program Files/../principal.pas'
Var
& nbsp & nbsp sl: TStringList
& nbsp & nbsp sHelp, sFile: String
& nbsp & nbsp opi: Integer
Begin
& nbsp & nbsp sHelp := PathToMince
& nbsp & nbsp opi := Pos('/', sHelp)
& nbsp & nbsp Si las opi = 0, Entonces
& nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp Resultado := PathToMince
& nbsp & nbsp Final
& nbsp & nbsp Else
& nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp sl := TStringList.Crear
& nbsp & nbsp & nbsp & nbsp // Decodificar la cadena
& nbsp & nbsp & nbsp & nbsp Mientras que las opi <> 0 Hacer
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Agregar(Copia(sHelp, 1, (opi - 1)))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sHelp := Copy(sHelp, (opi 1), Longitud(sHelp))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp opi := Pos('/', sHelp)
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp & nbsp Si sHelp <> ' Then
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Agregar(sHelp)
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp & nbsp // Codificar la cadena
& nbsp & nbsp & nbsp & nbsp sFile := sl[sl.Count - 1]
& nbsp & nbsp & nbsp & nbsp sl.Eliminar(sl.Count - 1)
& nbsp & nbsp & nbsp & nbsp Resultado := '
& nbsp & nbsp & nbsp & nbsp Mientras (Longitud(Resultado sFile) < InSpace) Y (sl.Cuenta <> 0) Hacer
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := Resultado sl[0] '/'
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Eliminar(0)
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp & nbsp Si sl.Count = 0, Entonces
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := Resultado sFile
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp & nbsp Else
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := Resultado '../' sFile
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp & nbsp sl.Libre
& nbsp & nbsp Final
Fin
Conclusión:
Función como ShortFileName, LongFileName, y carne Picada son grandes
ayudantes en un entorno RAD.
Largo y corto nombres de archivo
Largo y corto nombres de archivo : Multi-millones de consejos para hacer su vida mas facil.
Como convertir el archivo completo caminos. Los nombres de archivo cortos convertido a Largo nombre de archivo, nombres de archivo Largos para los nombres de archivo Cortos y Picar los nombres de archivo.
Cuando un nombre de archivo se coloca en un formulario o una linea de comandos incluye un
nombre de archivo que el sistema operativo es el uso de los nombres de archivo Cortos (formato 8.3).
La principal razon es que un Corto formato de nombre de archivo no pueden incluir un
el espacio de la carta. Esto funciona muy bien desde el espacio-carta
se utiliza como un archivo delimitador.
Las tres funciones siguientes le ayudaran a convertir entre los
Corto y Largo nombre de archivo. He añadido la Picada nombre de archivo de funcion
ayudar a la visualizacion de un nombre de archivo completo, incluyendo la ruta de acceso.
{===================================================}
Funcion ShortFileName(Const FileName: String): String
{===================================================}
Var
& nbsp & nbsp aTmp: Array[0..255] Of Char
Begin
& nbsp & nbsp Si No FileExists(nombre de archivo), a Continuacion,
& nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp Resultado := '
& nbsp & nbsp Final
& nbsp & nbsp Else
& nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp Si GetShortPathName(PChar (nombre de archivo), aTmp, Sizeof (aTmp) - 1) = 0, Entonces
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado:= Nombre del archivo
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp & nbsp Else
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado:= StrPas (aTmp)
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp Final
Fin
{==============================================}
Funcion LongFileName(ShortName: String): String
{==============================================}
Var
& nbsp & nbsp SR: TSearchRec
Begin
& nbsp & nbsp Resultado := '
& nbsp & nbsp If (pos ('//', ShortName) pos ('*', ShortName)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp pos ('?', ShortName) <> 0) O No FileExists(ShortName), a Continuacion,
& nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp { omitir el nombre del NetBIOS, bromista caracteres y nombres de archivo no validos }
& nbsp & nbsp & nbsp & nbsp Salida
& nbsp & nbsp Final
& nbsp & nbsp Mientras FindFirst(ShortName, faAnyFile, SR) = 0
& nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp { siguiente parte como prefijo }
& nbsp & nbsp & nbsp & nbsp Resultado := '/' SR.Nombre Resultado
& nbsp & nbsp & nbsp & nbsp SysUtils.FindClose(SR) { el SysUtils, no las unidades winprocs procedimiento! }
& nbsp & nbsp & nbsp & nbsp { directory (corte antes de '/') }
& nbsp & nbsp & nbsp & nbsp ShortName := ExtractFileDir (ShortName)
& nbsp & nbsp & nbsp & nbsp Si longitud (ShortName) <= 2
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Romper { ShortName contiene la letra de la unidad seguida de cerca por ':' }
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp Final
& nbsp & nbsp Resultado := ExtractFileDrive (ShortName) Resultado
fin
{=========================================================}
la Funcion de Picar(PathToMince: String InSpace: Integer): String
{=========================================================}
// 'C:/Program Files/Delphi/DDrop/TargetDemo/principal.pas'
// 'C:/Program Files/../principal.pas'
Var
& nbsp & nbsp sl: TStringList
& nbsp & nbsp sHelp, sFile: String
& nbsp & nbsp opi: Integer
Begin
& nbsp & nbsp sHelp := PathToMince
& nbsp & nbsp opi := Pos('/', sHelp)
& nbsp & nbsp Si las opi = 0, Entonces
& nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp Resultado := PathToMince
& nbsp & nbsp Final
& nbsp & nbsp Else
& nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp sl := TStringList.Crear
& nbsp & nbsp & nbsp & nbsp // Decodificar la cadena
& nbsp & nbsp & nbsp & nbsp Mientras que las opi <> 0 Hacer
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Agregar(Copia(sHelp, 1, (opi - 1)))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sHelp := Copy(sHelp, (opi 1), Longitud(sHelp))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp opi := Pos('/', sHelp)
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp & nbsp Si sHelp <> ' Then
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Agregar(sHelp)
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp & nbsp // Codificar la cadena
& nbsp & nbsp & nbsp & nbsp sFile := sl[sl.Count - 1]
& nbsp & nbsp & nbsp & nbsp sl.Eliminar(sl.Count - 1)
& nbsp & nbsp & nbsp & nbsp Resultado := '
& nbsp & nbsp & nbsp & nbsp Mientras (Longitud(Resultado sFile) < InSpace) Y (sl.Cuenta <> 0) Hacer
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := Resultado sl[0] '/'
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Eliminar(0)
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp & nbsp Si sl.Count = 0, Entonces
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := Resultado sFile
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp & nbsp Else
& nbsp & nbsp & nbsp & nbsp Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := Resultado '../' sFile
& nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp & nbsp sl.Libre
& nbsp & nbsp Final
Fin
Conclusion:
Funcion como ShortFileName, LongFileName, y carne Picada son grandes
ayudantes en un entorno RAD.
Largo y corto nombres de archivo
By Consejos Y Trucos
Largo y corto nombres de archivo : Multi-millones de consejos para hacer su vida más fácil.