Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: palophp en 4 Octubre 2016, 19:49 pm



Título: Renombrar fichero con fecha actual
Publicado por: palophp en 4 Octubre 2016, 19:49 pm
Hola, tengo un script el cual me comprueba si existe ese fichero y si no existe me lo crea.
Luego quiero que lo vuelva a comprobar cuando lo lance, y si existe que me lo renombre
bien con la fecha actual o simplemente que sea demo.txt, demo1.txt, demo2.txt.
Me podeis ayudar?
Este es mi codigo:

Dim objFS
Set objFS = CreateObject("Scripting.FileSystemObject")

If  objFS.FileExists ("C:\Desktop\demo.txt") Then
   MsgBox("archivo  existe")
Else
   MsgBox("archivo NO existe")
   Dim objFile
   Set objFile = objFS.CreateTextFile("C:\Desktop\demo.txt")
   objFile.WriteLine("Ejemplo")
End If


Título: Re: Renombrar fichero con fecha actual
Publicado por: okik en 10 Octubre 2016, 00:18 am
Este código crea el archivo y si existe le añade un número. Si ya existe con ese número le incrementa un número más. Por ejemplo si hay demo.txt, crea demo(1).txt, si ya existe demo.txt y demo(1).txt, crea demo(2).txt. Si existe demo(1).txt y no existe demo.txt, crea demo.txt, luego creará demo(2).txt porque ya existe demo(1).txt

Código
  1. Dim objFS
  2. Dim sFileName As String
  3. Dim sPath As String
  4. Dim sExt As String
  5. Dim num As Integer
  6. Dim sFilePath As String
  7.  
  8. sFileName = "demo"
  9. sExt = "txt"
  10. sPath = "C:\Desktop"
  11. sFilePath = sPath & "\" & sFileName & "." & sExt
  12. num = 0
  13.  
  14. Set objFS = CreateObject("Scripting.FileSystemObject")
  15. 'Si  el archivo existe añade un número
  16. 'y si tiene un número busca otro número que no exista
  17. If objFS.FileExists(sFilePath) Then
  18.  While objFS.FileExists(sFilePath)
  19.  num = num + 1
  20. sFilePath = sPath & "\" & sFileName & "(" & num & ")" & "." & sExt
  21.  Wend
  22. End If
  23.  
  24. 'Crea el archivo
  25. Dim objFile As Object
  26. Set objFile = objFS.CreateTextFile(sFilePath)
  27. objFile.WriteLine ("Ejemplo")


Lo mismo pero con fecha

Código
  1. Dim objFS
  2. Dim sFileName As String
  3. Dim sPath As String
  4. Dim sExt As String
  5. Dim num As Integer
  6. Dim sFilePath As String
  7.  
  8. sFileName = "demo" & "_" & Format(DateTime.Date, "dd-mm-yyyy")
  9. sExt = "txt"
  10. sPath = "C:\Desktop"
  11. sFilePath = sPath & "\" & sFileName & "." & sExt
  12. num = 0
  13.  
  14. Set objFS = CreateObject("Scripting.FileSystemObject")
  15. 'Si  el archivo existe añade un número
  16. 'y si tiene un número busca otro número que no exista
  17. If objFS.FileExists(sFilePath) Then
  18.  While objFS.FileExists(sFilePath)
  19.  num = num + 1
  20. sFilePath = sPath & "\" & sFileName & "(" & num & ")" & "." & sExt
  21.  Wend
  22. End If
  23.  
  24. 'Crea el archivo
  25. Dim objFile As Object
  26. Set objFile = objFS.CreateTextFile(sFilePath)
  27. objFile.WriteLine ("Ejemplo")