ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

DirectoryExists - Win7 e Win2003 Server

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Qui Nov 29, 2012 11:35 am    Assunto: DirectoryExists - Win7 e Win2003 Server Responder com Citação

ola pessoal, estou com o seguinte problema

ao usar a funcao DirectoryExists, mesmo tendo o diretorio criado, a funcao retorna False, causando erro na aplicacao. a minha procedure esta assim:

Código:
procedure TdmDados.VerificaDiretorio(Diretorio: string);
begin
   if not DirectoryExists(Diretorio) then
      if not ForceDirectories(Diretorio) then
         raise Exception.Create('Não foi possível criar a pasta "' + Diretorio + '"');
end;


isso estava funcionando normalmente (e continua funcionando), caso eu esteja no Win XP ou no Win 2003/2008 server.

apos atualizar a minha maquina para win 7, parou de funcionar, pq executa o ForceDirectories, mesmo a pasta existindo.

alg tem alguma ideia do q pode ser?
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fernandovr
Membro Junior
Membro Junior


Registrado: Quarta-Feira, 10 de Outubro de 2012
Mensagens: 379
Localização: São Paulo

MensagemEnviada: Qui Nov 29, 2012 1:40 pm    Assunto: Re: DirectoryExists - Win7 e Win2003 Server Responder com Citação

joemil escreveu:
ola pessoal, estou com o seguinte problema

ao usar a funcao DirectoryExists, mesmo tendo o diretorio criado, a funcao retorna False, causando erro na aplicacao. a minha procedure esta assim:

Código:
procedure TdmDados.VerificaDiretorio(Diretorio: string);
begin
   if not DirectoryExists(Diretorio) then
      if not ForceDirectories(Diretorio) then
         raise Exception.Create('Não foi possível criar a pasta "' + Diretorio + '"');
end;



isso estava funcionando normalmente (e continua funcionando), caso eu esteja no Win XP ou no Win 2003/2008 server.

apos atualizar a minha maquina para win 7, parou de funcionar, pq executa o ForceDirectories, mesmo a pasta existindo.

alg tem alguma ideia do q pode ser?


Estranho, eu tenho o windows 7 aqui e utilizo desta forma

Código:
  if not DirectoryExists(PathSave) then // Verifica se o diretório existe.
    ForceDirectories(PathSave);  // Se não existir ele cria o diretório.


E aqui funciona normalmente. É praticamente a mesma coisa q o seu.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Qui Nov 29, 2012 3:35 pm    Assunto: Responder com Citação

mas o problema nao esta em criar o diretorio e sim em verificar se ele existe ou nao.

a falha esta na funcao DirectoryExists. se eu usar no proprio Win7 funciona (local), mas se eu mapeio um drive para o servidor, pára de funcionar, coisa q nao acontece se estiver rodando no Win XP ou Win Server 2003/2008 com o drive mapeado
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
viox
Colaborador
Colaborador


Registrado: Sábado, 22 de Outubro de 2011
Mensagens: 1090
Localização: SINOP - MT

MensagemEnviada: Qui Nov 29, 2012 5:33 pm    Assunto: Responder com Citação

Olá Joemil, teu problema e com permissões no windows de uma verificada, essa função funciona normalmente em todas as versões do windows.
_________________
Just another Delphi guy.


http://www.soft42.com
http://www.nortaonegocios.com.br
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Qui Nov 29, 2012 5:38 pm    Assunto: Responder com Citação

mas se eu for pelo windows explorer ta tudo normal
consigo criar pasta, arquivos, deletar, tudo normal
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fernandovr
Membro Junior
Membro Junior


Registrado: Quarta-Feira, 10 de Outubro de 2012
Mensagens: 379
Localização: São Paulo

MensagemEnviada: Qui Nov 29, 2012 8:07 pm    Assunto: Responder com Citação

joemil eu testei aqui, exatamente do jeito q vc fez, copiei e colei e funcionou normalmente. forcei até um erro para não poder criar a pasta e apareceu a mensagem normalmente. está tudo funcionando.

Vc ja tentou executar seu programa como administrador??

tipo clicando com o botão direito nele e depois em "executar como administrador".

Acho q o viox tem razão, deve ser algum problema de permissão mesmo. Uma coisa é vc como usuário criar e deletar pastas normalmente, outra coisa é um software ter permissão para fazer isto.

Qual a versão do windows 7 q vc está usando? eu estou usando o Ultimate.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Sex Nov 30, 2012 7:40 am    Assunto: Responder com Citação

tb to usando o Ultimate. e tb ja executei como administrador.

vou mudar a funcao para:

Código:
procedure TdmDados.VerificaDiretorio(Diretorio: string);
begin
   if not DirectoryExists(Diretorio) then
      ForceDirectories(Diretorio);
end;


dessa forma nao causa o erro hehehe. mas se o diretorio nao existir e nao for criado vai dar B.O no sistema kakaka
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fernandovr
Membro Junior
Membro Junior


Registrado: Quarta-Feira, 10 de Outubro de 2012
Mensagens: 379
Localização: São Paulo

MensagemEnviada: Sex Nov 30, 2012 11:46 am    Assunto: Responder com Citação

joemil escreveu:
tb to usando o Ultimate. e tb ja executei como administrador.

vou mudar a funcao para:

Código:
procedure TdmDados.VerificaDiretorio(Diretorio: string);
begin
   if not DirectoryExists(Diretorio) then
      ForceDirectories(Diretorio);
end;


dessa forma nao causa o erro hehehe. mas se o diretorio nao existir e nao for criado vai dar B.O no sistema kakaka


rss complicado joemil, realmente não dá pra entender o pq no seu windows está executando diferente, fica difícil de saber se o problema é com o delphi ou é com o windows.

Eu sempre utilizei esta função e nunca tive problema dele não criar um diretorio, espero q com você tb não tenha problemas.

Boa sorte. Abraços..
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB