Tema: Switch en C#
Ver Mensaje Individual
  #4  
Antiguo 26-09-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por roman
Por lo que veo (...)
Que es poco... Quiero decir que, aunque he tratado de hacerlo, no he conseguido algo parecido a lo que dices... ¿y porqué traté de hacerlo? Pues porque no me disgusta C# y traté de dejarle bien Sin embargo, insisto en que ves poco, o sea, que yo no sepa hacerlo no significa que no pueda hacerse... Además, cabría decir que otras cosas tendrá C# que le hagan maravilloso, hasta cierto punto, claro está.

Esta mañana me he puesto a contar los subdirectorios de un directorio con Delphi. O fue anoche, no recuerdo bien. El caso es que me topaba con algunos problemas, porque "como lo hacía" (véase abajo) no me contaba los directorios ocultos, o los del sistema,... en fin, yo quería contar todos los subdirectorios de un directorio, pero, todos, todos. Pues bien, no digo yo que no pueda mejorarse mucho, pero, esto es al cabo lo que hize con Delphi para lograr lo dicho:

Código Delphi [-]
 function NumeroSubDirectorios(directorio: string;
   ocultos, sistema, soloLectura: boolean) : integer;
 var
   SR: TSearchRec;
   atributos: Cardinal;
 begin
   Result := 0;
   atributos := faDirectory;
   if ocultos then atributos := atributos or faHidden;
   if sistema then atributos := atributos or faSysFile;
   if soloLectura then atributos := atributos or faReadOnly;
   directorio := IncludeTrailingPathDelimiter(directorio);
   if FindFirst(directorio +'*', atributos, SR) = 0 then
   begin
     repeat
       if (SR.Name <> '.') and (SR.Name <> '..')
         and DirectoryExists(directorio + SR.Name) then
           Inc(Result);
     until FindNext(SR) <> 0;
     SysUtils.FindClose(SR);
   end;
 end;
Entonces estaba con el Visual C# por aquí rodando y me he dicho, ¿cómo lo harías en C#, teniendo en cuenta que quieres listar todos los subdirectorios, incluidos los ocultos, los de sistema, los de solo lectura? Pues lo hize, y el caso es que no guardé lo escrito, pero, tampoco importa mucho, se escribe de nuevo, aquí va:

Código:
 public int NumeroSubDirectorios(string directorio)
 {
   if(System.IO.Directory.Exists(directorio))
 	return System.IO.Directory.GetDirectories(directorio).Length;
   else
 	return 0;
 }
¿No es maravilloso C#? Si bien es verdad que para mí tengo que ambos lenguajes lo son: y son del mismo padre, se podría decir, tal vez un poco a la ligera, pero, ¿hay o no hay diferencia entre el API Win32 y el API .NET? Bueno... también yo, como si el mundo estuviera esperando que yo descubriera algo...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita