Cómo: Crear una lista de directorios

En el siguiente ejemplo de código se explica la forma de utilizar las clases de E/S para crear un listado de todos los archivos de un directorio que tienen la extensión ".exe".

Ejemplo

Imports System
Imports System.IO

Public Class DirectoryLister
    Public Shared Sub Main(args() As String)
        Dim path As String = Environment.CurrentDirectory
        If args.Length > 0 Then
            If Directory.Exists(args(0)) Then
                path = args(0)
            Else
                Console.WriteLine("{0} not found; using current directory:",
                    args(0))
            End If
        End If
        Dim dir As New DirectoryInfo(path)
        For Each f As FileInfo In dir.GetFiles("*.exe")
            Dim name As String = f.Name
            Dim size As Long = f.Length
            Dim creationTime As DateTime = f.CreationTime
            Console.WriteLine("{0,-12:N0} {1,-20:g} {2}", size,
                creationTime, name)
        Next f
    End Sub
End Class
using System;
using System.IO;

public class DirectoryLister
{
    public static void Main(String[] args)
    {
        string path = Environment.CurrentDirectory;
        if (args.Length > 0)
        {
            if (Directory.Exists(args[0]))
            {
                path = args[0];
            }
            else
            {
                Console.WriteLine("{0} not found; using current directory:",
                    args[0]);
            }
        }
        DirectoryInfo dir = new DirectoryInfo(path);
        foreach (FileInfo f in dir.GetFiles("*.exe"))
        {
            string name = f.Name;
            long size = f.Length;
            DateTime creationTime = f.CreationTime;
            Console.WriteLine("{0,-12:N0} {1,-20:g} {2}", size,
                creationTime, name);
        }
    }
}
using namespace System;
using namespace System::IO;

public ref class DirectoryLister
{
public:
    static void Main(array<String^>^ args)
    {
        String^ path = Environment::CurrentDirectory;
        if (args->Length > 0)
        {
            if (Directory::Exists(args[0]))
            {
                path = args[0];
            }
            else
            {
                Console::WriteLine("{0} not found; using current directory:",
                    args[0]);
            }
        }
        DirectoryInfo^ dir = gcnew DirectoryInfo(path);
        for each (FileInfo^ f in dir->GetFiles("*.exe"))
        {
            String^ name = f->Name;
            long size = f->Length;
            DateTime^ creationTime = f->CreationTime;
            Console::WriteLine("{0,-12:N0} {1,-20:g} {2}", size,
                creationTime, name);
        }
    }
};

int main()
{
    DirectoryLister::Main(Environment::GetCommandLineArgs());
}

Programación eficaz

En este ejemplo, DirectoryInfo es el directorio actual, indicado con (".") y el código enumera todos los archivos del directorio actual que tienen la extensión .exe, junto con el tamaño de archivo, la hora de creación y el nombre. Suponiendo que hubiera archivos .exe en el subdirectorio \Bin de C:\MyDir, el resultado de este código tendría el aspecto siguiente:

953          7/20/2000 10:42 AM   C:\MyDir\Bin\paramatt.exe
664          7/27/2000 3:11 PM    C:\MyDir\Bin\tst.exe
403          8/8/2000 10:25 AM    C:\MyDir\Bin\dirlist.exe

Si desea obtener una lista de archivos contenidos en otro directorio, como su directorio raíz C:\, pase el argumento "C:\" al archivo ejecutable generado por la compilación de este código, por ejemplo: "testApplication.exe C:\".

NotaNota

Los usuarios de Visual Basic pueden optar por usar las propiedades y los métodos proporcionados por la clase FileSystem para la entrada y salida de archivos.

Vea también

Tareas

Cómo: Leer y escribir en un archivo de datos recién creado

Cómo: Abrir y anexar a un archivo de registro

Cómo: Leer texto de un archivo

Cómo: Escribir texto en un archivo

Cómo: Leer caracteres de una cadena

Cómo: Escribir caracteres en una cadena

Referencia

DirectoryInfo

CreationTime

FullName

FileInfo.Length

DirectoryInfo.GetFiles

Conceptos

E/S de archivos básica