| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Qui Nov 29, 2012 11:35 am Assunto: DirectoryExists - Win7 e Win2003 Server |
|
|
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 |
|
 |
fernandovr Membro Junior


Registrado: Quarta-Feira, 10 de Outubro de 2012 Mensagens: 379 Localização: São Paulo
|
Enviada: Qui Nov 29, 2012 1:40 pm Assunto: Re: DirectoryExists - Win7 e Win2003 Server |
|
|
| 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 |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Qui Nov 29, 2012 3:35 pm Assunto: |
|
|
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 |
|
 |
viox Colaborador

Registrado: Sábado, 22 de Outubro de 2011 Mensagens: 1090 Localização: SINOP - MT
|
Enviada: Qui Nov 29, 2012 5:33 pm Assunto: |
|
|
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 |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Qui Nov 29, 2012 5:38 pm Assunto: |
|
|
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 |
|
 |
fernandovr Membro Junior


Registrado: Quarta-Feira, 10 de Outubro de 2012 Mensagens: 379 Localização: São Paulo
|
Enviada: Qui Nov 29, 2012 8:07 pm Assunto: |
|
|
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 |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Sex Nov 30, 2012 7:40 am Assunto: |
|
|
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 |
|
 |
fernandovr Membro Junior


Registrado: Quarta-Feira, 10 de Outubro de 2012 Mensagens: 379 Localização: São Paulo
|
Enviada: Sex Nov 30, 2012 11:46 am Assunto: |
|
|
| 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 |
|
 |
|