Constancia

VB_CLS_FSO

Jul 1st, 2014
342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 9.76 KB | None | 0 0
  1. Imports Scripting
  2. Imports System.IO
  3. Imports System.String
  4.  
  5. Public Class FSO
  6.  
  7.     Private oFSO As New Scripting.FileSystemObject
  8.     Private Carp As Scripting.Folder, oDir As Scripting.Files, Fic As Scripting.File, Txt As Scripting.TextStream
  9.     Public Ficheros() As String
  10.     Dim ForReading As IOMode
  11.     Dim ForAppending As IOMode
  12.  
  13.     Public Function ExisteFichero(RutaFic As String) As Boolean
  14.         If oFSO.FileExists(RutaFic) Then Return True Else Return False
  15.     End Function
  16.  
  17.     Public Sub CopiarFichero(Origen, Destino, Reescribir)
  18.         If oFSO.FileExists(Origen) Then oFSO.CopyFile(Origen, Destino, Reescribir)
  19.     End Sub
  20.  
  21.     Public Sub MoverFichero(Origen As String, Destino As String)
  22.         If oFSO.FileExists(Origen) Then oFSO.MoveFile(Origen, Destino)
  23.     End Sub
  24.  
  25.     Public Sub BorrarFichero(Fichero As String)
  26.         If oFSO.FileExists(Fichero) Then oFSO.DeleteFile(Fichero)
  27.     End Sub
  28.  
  29.     Public Function ExisteCarpeta(Carpeta As String) As Boolean
  30.         If oFSO.FolderExists(Carpeta) Then Return True Else Return False
  31.     End Function
  32.  
  33.     Public Sub CrearCarpeta(Carpeta As String)
  34.         If Not oFSO.FolderExists(Carpeta) Then oFSO.CreateFolder(Carpeta)
  35.     End Sub
  36.  
  37.     Public Sub MoverCarpeta(Origen As String, Destino As String)
  38.         If oFSO.FolderExists(Origen) Then oFSO.MoveFolder(Origen, Destino)
  39.     End Sub
  40.  
  41.     Public Sub CopiarCarpeta(Origen As String, Destino As String, Reescribir As Boolean)
  42.         If oFSO.FolderExists(Origen) Then oFSO.CopyFolder(Origen, Destino, Reescribir)
  43.     End Sub
  44.  
  45.     Public Sub BorrarCarpeta(Carpeta As String)
  46.         If oFSO.FolderExists(Carpeta) Then oFSO.DeleteFolder(Carpeta)
  47.     End Sub
  48.  
  49.     'Public Function Directorio(Carpeta) As String()
  50.  
  51.     '    Dim x As Integer
  52.  
  53.     '    If oFSO.FolderExists(Carpeta) Then
  54.     '        Carp = oFSO.GetFolder(Carpeta)
  55.     '        oDir = Carp.Files
  56.     '        x = 0
  57.     '        For Each Item In oDir
  58.     '            ReDim Preserve Ficheros(x)
  59.     '            Ficheros(x) = Item
  60.     '            x = x + 1
  61.     '        Next
  62.     '    End If
  63.  
  64.     '    Directorio = Ficheros
  65.  
  66.     'End Function
  67.  
  68.     Public Function Directorio(Carpeta As String, bRecursivo As Boolean) As List(Of String)
  69.  
  70.         Dim Lista As New List(Of String)
  71.         Dim Stack As New Stack(Of String)
  72.  
  73.         Directorio = Nothing
  74.  
  75.         Stack.Push(Carpeta)
  76.  
  77.         If oFSO.FolderExists(Carpeta) Then
  78.             Do While (Stack.Count > 0)
  79.                 ' Get top directory string
  80.                 Dim dir As String = Stack.Pop
  81.                 Try
  82.                     ' Add all immediate file paths
  83.                     Lista.AddRange(Directory.GetFiles(dir, "*.*"))
  84.  
  85.                     If bRecursivo Then
  86.                         ' Loop through all subdirectories and add them to the stack.
  87.                         Dim directoryName As String
  88.                         For Each directoryName In Directory.GetDirectories(dir)
  89.                             Stack.Push(directoryName)
  90.                         Next
  91.                     End If
  92.  
  93.                 Catch ex As Exception
  94.                 End Try
  95.             Loop
  96.  
  97.             Directorio = Lista
  98.         End If
  99.  
  100.     End Function
  101.  
  102.     Public Function NombreFichero(Ruta As String) As String
  103.  
  104.         If oFSO.FileExists(Ruta) Then
  105.             Fic = oFSO.GetFile(Ruta)
  106.             NombreFichero = Fic.Name
  107.         Else
  108.             NombreFichero = "Fichero Desconocido"
  109.         End If
  110.  
  111.         Fic = Nothing
  112.  
  113.     End Function
  114.  
  115.     Public Function TamannoFichero(Ruta As String) As Long
  116.  
  117.         If oFSO.FileExists(Ruta) Then
  118.             Fic = oFSO.GetFile(Ruta)
  119.             TamannoFichero = Fic.Size
  120.         Else
  121.             TamannoFichero = 0
  122.         End If
  123.  
  124.         Fic = Nothing
  125.  
  126.     End Function
  127.  
  128.     Function sTamanno(iTamanno As Long, iDecimales As Integer) As String
  129.  
  130.         If iTamanno < 1000 Then
  131.             sTamanno = iTamanno & " bytes"
  132.         ElseIf iTamanno > 999 And iTamanno < 1000000 Then
  133.             sTamanno = Math.Round(iTamanno / 1000, iDecimales) & " Kb"
  134.         ElseIf iTamanno > 999000 Then
  135.             sTamanno = Math.Round(iTamanno / 1000000, iDecimales) & " Mb"
  136.         Else
  137.             sTamanno = iTamanno & " ?"
  138.         End If
  139.  
  140.     End Function
  141.  
  142.     Public Function FechaModifFichero(Ruta As String) As Date
  143.  
  144.         FechaModifFichero = "01/01/1800"
  145.  
  146.         If oFSO.FileExists(Ruta) Then
  147.             Fic = oFSO.GetFile(Ruta)
  148.             FechaModifFichero = Fic.DateLastModified
  149.             '  FechaModifFichero = CDate(Format(Fic.DateLastModified, "dd/mm/yyyy"))
  150.         End If
  151.  
  152.         Fic = Nothing
  153.  
  154.     End Function
  155.  
  156.  
  157.     Public Function FicheroFechaHoy(Ruta As String) As Boolean
  158.  
  159.         Dim Fecha As Date, strfecha As String
  160.  
  161.         Fecha = FechaModifFichero(Ruta)
  162.         strfecha = Left(CStr(Fecha), 10)
  163.  
  164.         If Left(CStr(Date.Today), 10) <> strfecha Then Return False
  165.  
  166.         Return True
  167.  
  168.     End Function
  169.  
  170.  
  171.  
  172.     Public Sub CrearEscribirTxt(Fichero As String, Reescribir As Boolean, Texto As String)
  173.  
  174.         If Reescribir Then
  175.             Txt = oFSO.OpenTextFile(Fichero, 2, True)
  176.             Txt.Write(Texto)
  177.             Txt.Close()
  178.         ElseIf Not Reescribir Then
  179.             If oFSO.FileExists(Fichero) Then
  180.                 Txt = oFSO.OpenTextFile(Fichero, 8, True)
  181.                 Txt.Write(Texto)
  182.                 Txt.Close()
  183.             ElseIf Not oFSO.FileExists(Fichero) Then
  184.                 Txt = oFSO.OpenTextFile(Fichero, 2, True)
  185.                 Txt.Write(Texto)
  186.                 Txt.Close()
  187.             End If
  188.         End If
  189.         Txt = Nothing
  190.  
  191.     End Sub
  192.  
  193.     Public Sub EscribirLineaTxt(Fichero As String, Texto As String, Optional Crear As Boolean = False)
  194.  
  195.         Txt = oFSO.OpenTextFile(Fichero, 8, Crear)
  196.         Txt.WriteLine(Texto)
  197.         Txt.Close() : Txt = Nothing
  198.  
  199.     End Sub
  200.  
  201.     Public Function LeerTxt(Fichero As String) As String
  202.  
  203.         Txt = oFSO.OpenTextFile(Fichero, 1, False)
  204.         LeerTxt = Txt.ReadAll
  205.         Txt.Close()
  206.         Txt = Nothing : Txt = Nothing
  207.  
  208.     End Function
  209.  
  210.     Public Function LineasFichero(Fichero As String) As Integer
  211.  
  212.         Dim StrFic As String, Arr_Lineas() As String
  213.  
  214.         oFSO = CreateObject("Scripting.FileSystemObject")
  215.  
  216.         Try
  217.             StrFic = oFSO.OpenTextFile(Fichero, IOMode.ForReading).ReadAll
  218.             Arr_Lineas = Strings.Split(StrFic, vbCrLf)
  219.             LineasFichero = UBound(Arr_Lineas) + 1
  220.         Catch ex As Exception
  221.             LineasFichero = -1
  222.         End Try
  223.  
  224.         StrFic = "" : Arr_Lineas = Nothing
  225.  
  226.     End Function
  227.  
  228.     Public Sub RecorreLineas(Fichero As String)
  229.  
  230.         Dim s As String, ifila As Integer
  231.  
  232.         Txt = oFSO.OpenTextFile(Fichero, IOMode.ForReading, False)
  233.  
  234.         ifila = 1
  235.  
  236.         While Not Txt.AtEndOfStream
  237.             s = Txt.ReadLine
  238.  
  239.             If s = "" Then
  240.                 ' Txt.WriteLine("XXXXXXXXX    ")
  241.             End If
  242.             ifila = ifila + 1
  243.         End While
  244.  
  245.         Txt.Close()
  246.         Txt = Nothing : Txt = Nothing
  247.  
  248.     End Sub
  249.  
  250.     '*************** UNIR DOS FICHEROS DE TEXTO
  251.  
  252.     Public Sub UnirTxt(Txt1 As String, Txt2 As String, TxtUnion As String)
  253.  
  254.         Dim ts1 As TextStream
  255.         Dim ts2 As TextStream
  256.         Dim tsUnion As TextStream
  257.  
  258.         CrearEscribirTxt(TxtUnion, True, "")
  259.  
  260.         ts1 = oFSO.OpenTextFile(Txt1, IOMode.ForReading)
  261.         ts2 = oFSO.OpenTextFile(Txt2, IOMode.ForReading)
  262.         tsUnion = oFSO.OpenTextFile(TxtUnion, IOMode.ForAppending)
  263.  
  264.         tsUnion.Write(ts1.ReadAll) : tsUnion.Write(ts2.ReadAll)
  265.         ts1.Close() : ts2.Close() : tsUnion.Close()
  266.         ts1 = Nothing : ts2 = Nothing : tsUnion = Nothing
  267.  
  268.     End Sub
  269.  
  270.     '*************** UNIR VARIOS FICHEROS DE TEXTO
  271.     Public Sub UnirTxts(Arr_TxtOrigen() As String, TxtUnion As String)
  272.  
  273.         Dim ts1 As TextStream
  274.         Dim tsUnion As TextStream
  275.  
  276.         CrearEscribirTxt(TxtUnion, True, "")
  277.         tsUnion = oFSO.OpenTextFile(TxtUnion, IOMode.ForAppending)
  278.  
  279.         For Each item As String In Arr_TxtOrigen
  280.             ts1 = oFSO.OpenTextFile(item, IOMode.ForReading)
  281.             tsUnion.Write(ts1.ReadAll)
  282.             ts1.Close() : ts1 = Nothing
  283.         Next
  284.  
  285.         tsUnion.Close()
  286.         ts1 = Nothing : tsUnion = Nothing
  287.  
  288.     End Sub
  289.  
  290.     'Public Sub UnirTxt(Txt1 As String, Txt2 As String, TxtUnion As String)
  291.  
  292.     '    Dim strRead1 As New IO.StreamReader(Txt1)   'aqui abro un lector de stream del primer archivo
  293.  
  294.     '    Dim strRead2 As New IO.StreamReader(Txt2)  'aqui abro un lector de stream del segundo archivo
  295.  
  296.     '    Dim strbuild As New System.Text.StringBuilder    'este objeto sirve para acumular textos
  297.  
  298.     '    While strRead2.Peek <> -1 Or strRead1.Peek <> -1 'hago un ciclo mientras  en cualquiera de los dos me queden lineas
  299.  
  300.     '        If strRead1.Peek <> -1 Then   'pregunto si llegue al final del archivo 1
  301.  
  302.     '            strbuild.Append(strRead1.ReadLine.Replace(vbCrLf, "")) 'no he llegado al final, leo la linea, elimino el enter final y la pego
  303.  
  304.     '        End If
  305.  
  306.     '        If strRead2.Peek <> -1 Then 'lo mismo con el segundo archivo
  307.  
  308.     '            strbuild.Append(" " & strRead2.ReadLine.Replace(vbCrLf, "")) ' esta linea la pego junto a la anterior, y dejo un espacio
  309.  
  310.     '        End If
  311.  
  312.     '        strbuild.Append(vbCrLf) 'le pego un enter al final de la linea
  313.  
  314.     '    End While
  315.  
  316.     '    strRead1.Close() 'cierro el primer archivo
  317.  
  318.     '    strRead2.Close() 'cierro el segundoarchivo
  319.  
  320.     '    Dim StrWriter As New IO.StreamWriter(TxtUnion) 'abro un stream para escritura
  321.  
  322.     '    StrWriter.Write(strbuild.ToString) 'escribo el stringbuilder completo (un solo string)
  323.  
  324.     '    StrWriter.Close() 'cierro el stream.
  325.     'End Sub
  326.  
  327. End Class
Advertisement
Add Comment
Please, Sign In to add comment