Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-11-2005
[Gunman] [Gunman] is offline
Miembro
 
Registrado: dic 2004
Ubicación: Pedreguer.
Posts: 355
Poder: 20
[Gunman] Va por buen camino
Question IsFolder(Folder: String): Boolean;

Pues eso, me parece que el título lo deja bien claro...
Estoy intentando coger el tamaño de los archivos con la función FileSize, pero claro, si el archivo que le metes en la función es una carpeta entonces la función da error. Por eso me gustaria hacer esta función para hacer algo así:
if IsFolder(ListView.Items[ListView.ItemIndex].Caption) = False then
begin
blablabla;
end
else
ListView.Items[ListView.ImageIndex].SubItems.Add('');

Muchas gracias!
__________________
l2prog.co.nr
Responder Con Cita
  #2  
Antiguo 07-11-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Existe una función "DirectoryExists", que te devolverá "false" en caso de que le pases como parámetro la ruta de un archivo. También cuentas con la función "FileExists", la cual te devolverá "false" si le pasas como parámetro la ruta de una carpeta. Creo que con eso puedes solventar el problema. No sé yo si habrá otra forma mejor, pero, se me ocurre así a bote pronto.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 07-11-2005
[Gunman] [Gunman] is offline
Miembro
 
Registrado: dic 2004
Ubicación: Pedreguer.
Posts: 355
Poder: 20
[Gunman] Va por buen camino
Aaaaahmmmmm... Ahora pruebo...

(Probando...)

Pues no... Aquí dejo el error y el código:
Código:
if FileExists(IncludeTrailingPathDelimiter(CDirLCCB.Text)+
 				Item.Caption) = True then
   begin
 	AssignFile(f, OpenDialog1.FileName);
 	Reset(f);
 	try
 	  Item.SubItems.Add(IntToStr(FileSize(f)));
 	finally
 	  CloseFile(f);
 	end;
   end
   else
 	Item.SubItems.Add('');
El Error: EInOutError (I/O Error 6)
__________________
l2prog.co.nr
Responder Con Cita
  #4  
Antiguo 08-11-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Lightbulb Sugerencia

Que tal si lo intentas de esta forma:

Código Delphi [-]
function IsFolder(Folder: String): Boolean;
var
  Attributes:Word;
begin
  Attributes:=FileGetAttr(Folder);
  Result:=(Attributes and faDirectory)=faDirectory;
end;

Un saludo.
Responder Con Cita
  #5  
Antiguo 08-11-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Señores, no nos compliquemos la vida, usemos:

DirectoryExists (para comprobar que primero existe la carpeta)
FileExists (para comprobar que despues existe el archivo)


Si quieres obtener el tamaño de un archivo, busca por el foro e internet, ya que el tamaño creo que se guarda como un Int64, no cabe en el FileSize para archivos grandes y tienes que consultar 2 campos para ello.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 08:48:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi