|
|
API : GetTempName
| Autor/es: Juan M Afán de Ribera | | Pregunta : Necesito crear un archivo temporal y no estoy muy seguro de cuál sería la forma más correcta para obtener un nombre de archivo y asegurarme de que ese archivo no exista ya en el sistema. ¿Existe alguna forma sencilla y segura de conseguirlo? | Respuesta : Sí, hay una forma sencilla de hacerlo utilizando el API de Windows. La función GetTempName devuelve un nombre de archivo temporal y cuya ruta será la que se haya indicado en su argumento TempPath. Si no se le da ningún valor al argumento TempPath entonces la ruta del archivo será la de la carpeta que utilice el sistema como carpeta temporal.
El API que se utiliza para esta función comprueba que no exista un archivo con el nombre generado y devuelve un nombre de fichero que es único.
Ejemplo de uso: | ' este código devolverá un nombre de archivo temporal
' situado en la carpeta temporal del sistema
NombreArchivo = GetTempName
' este código devolverá un nombre de archivo temporal
' situado en la carpeta "C:\"
NombreArchivo = GetTempName("C:\")
| | Pega este código en un módulo estandar | '---------------------------------------------------------
'
' GetTempName
'
' Código escrito originalmente por Juan M Afán de Ribera.
' Estás autorizado a utilizarlo dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web,
' por favor, contactar con el autor en
'
' accessvbafaq@ya.com
'
' Este código se brinda por cortesía de
' Juan M. Afán de Ribera
'
Private Declare Function GetTempFileName Lib "kernel32" _
Alias "GetTempFileNameA" _
(ByVal lpPathName As String, _
ByVal lpPrefixString As String, _
ByVal uUnique As Long, _
ByVal lpTempFileName As String) As Long
Function GetTempName(Optional TempPath As String) As String
Dim buffer As String * 1000
If TempPath = "" Then TempPath = Environ("TEMP")
If GetTempFileName(TempPath, vbNullString, 0&, buffer) Then
GetTempName = Left$(buffer, InStr(buffer, vbNullChar) - 1)
End If
End Function
'---------------------------------------------------------
| Ejemplos: | Temas relacionados: |
|