Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sync Master

Permission Denied ao apagar arquivo

Recommended Posts

Olá pessoal,

 

Estou fazendo um aplicativo com VB6 e tendo um problema na hora de apagar arquivos.

 

É o seguinte: eu crio uma pasta, crio alguns arquivos, e copio um outro arquivo para essa pasta. Este arquivo que copiei vem como "Somente leitura". Ao terminar minha operação, quero apagar todos os arquivos e pastas, mas este arquivo que copiei dá erro de "Permission Denied". Como posso mudar suas permissões ou forçar que seja apagado?

 

Estou usando a rotina abaixo para apagar:

 

 

 

Private Sub ApagarPasta(objFS As Object, Pasta As String)	Dim objFolder As Variant	Dim objFiles  As Variant	Dim objFile   As Variant	For Each objFolder In objFS.GetFolder(Pasta).SubFolders 'Pastas de periodos	  Set objFiles = objFolder.Files	  For Each objFile In objFiles		m_objFS.DeleteFile objFile	  Next	  ApagarPasta objFS, CStr(objFolder)	  objFS.deletefolder objFolder	  DoEvents	NextEnd Sub

 

 

Agradeço toda ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, nao sei mas voce nao tem que receber o caminho do arquivo para poder apagar ele? Éu uma vez precisei fazer isso e estava faltando receber o cominho por algum parametro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá solo,

 

Na minha rotina, passo o caminho completo da pasta como parâmetro, pego cada arquivo dela individualmente e o apago, para depois apagar a pasta. Os caminhos estão vindo ok.

 

O erro acontece nesse arquivo específico, na linha

 

m_objFS.DeleteFile objFile

dá permission denied

 

Agradeço pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser por causa do atributo "Somente Leitura".Tenta mudá-lo via fso usando a propriedade Attributes.Dá uma olhada nas constantes do FileAttribute para ver o valor dos atributos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

descobri que tem um parametro pra forçar apagar quando é somente leitura. Ficou assim:

 

Private Sub ApagarPasta(objFS As Object, Pasta As String)	Dim objFolder As Variant	Dim objFiles  As Variant	Dim objFile   As Variant	For Each objFolder In objFS.GetFolder(Pasta).SubFolders 'Pastas de periodos	  Set objFiles = objFolder.Files	  For Each objFile In objFiles		m_objFS.DeleteFile objFile, [b]true[/b]	  Next	  ApagarPasta objFS, CStr(objFolder)	  objFS.deletefolder objFolder, [b]true[/b]	  DoEvents	NextEnd Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.