NAO CONSEGUE ACHAR O DIRETORIO TEMPORARIO

JASON 24/08/2013 18:20:52
#428057
Boa tarde,

estou tendo problemas para salvar arquivos no diretório temporário do Windows, eu mando salvar, depois simplesmente quando vou ver se o arquivo está lá, não está.

Veja o código que estou usando:

 

[ô]No módulo:

[ô]====================== DIRETÓRIO TEMPORARIO DO SISTEMA ==========================

[ô]Public Declare Function GetTempPath Lib [Ô]kernel32[Ô] Alias _
[Ô]GetTempPathA[Ô] (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
[ô]Const MAX_PATH = 255

[ô]=================================================================================

[ô]No Form:

[ô]============== Pega o diretório temporário do Windows =================

[ô]Public Function TempDir() As String
[ô] Dim sRet As String, lngLen As Long

[ô]create buffer
[ô]sRet = String(MAX_PATH, 0)

[ô]lngLen = GetTempPath(MAX_PATH, sRet)
[ô]If lngLen = 0 Then Err.Raise Err.LastDllError
[ô]TempDir = Left$(sRet, lngLen)
[ô]End Function

[ô]----------------------------------------------------------------------------------------------------------------------------

[ô]Aqui é o trecho que salva:

[ô]========================= Salvando arquivo no diretório temporário ===========================

Private Sub Command1_Click()

[ô]On Error GoTo skip
[ô]If Dir (TempDir & [Ô]file003355.txt[Ô]) <> [Ô][Ô] Then
[ô]Open TempDir & [Ô]file003355.txt[Ô] For Output As #1
[ô]Write #1, Form1.Text1
[ô]Close #1
[ô]Else
[ô]Open TempDir [Ô]file003355.txt[Ô] For Append As #1
[ô]Write #1, Form1.Text1
[ô]Close #1
[ô]End If
[ô]Form1.Text1 = [Ô][Ô]
[ô]skip:

[ô]End Sub

PROFESSOR 27/08/2013 19:39:06
#428203
Não quis perder muito tempo lendo seu código, pois o que me chamou mais a atenção foi o fato de você querer utilizar a pasta [Ô]TEMP[Ô] do Windows.

Veja, não é a mais adequada das opções, pois a pasta TEMP do Windows, hoje em dia, é mantida para cada usuário, ao contrário da pasta TEMP do Windows 98, por exemplo. Além disso, um processo que utiliza esta pasta, ao ser encerrado, provê o sistema operacional da tarefa de excluir os arquivos nela contidos.

Ao invés disso, não seria mais adequado utilizar a pasta [Ô]Meus Documentos[Ô] da conta atual, ou uma pasta de nome fixo?
E outro detalhe: As operações de I/O diretas são funcionais, claro, mas você pode usar o FileSystemObjects (Scrrun.dll), que lhe oferece mais facilidades no manuseio de drives, pastas e arquivos.

ROBSON 27/08/2013 20:18:13
#428207
Caramba Professor, você só tem 2 estrelas ???!!!
Seus comentários são muitos inteligentes, mereciam ter todas as estrelas.
Na verdade já deveria ser um Guru.

Espero que não fique apenas de passagem...

Faça seu login para responder