|  | 		    
					
        
         
          
         
	
          | |  | slet en fil og opret en ny med samme navn Fra : Thong Tri Nguyen
 | 
 Dato :  12-06-02 18:26
 | 
 |  | Hej Grp
 
 Jeg har lavet følgende sub som i enkelte tilfælde giver
 'Path/File access error'
 
 Denne sub oprette en ny fil, hvis der findes en i forvejen skal den slettes
 først.
 FilePath, FileName og FileContent er alle ok !
 
 
 ------------------------------
 
 Public Sub SaveToDisk(ByVal FilePath As String)
 
 Dim i As Long
 Dim FileNumber As Integer
 
 If FilePath = "" Or FileName = "" Then Exit Sub
 If Mid(FilePath, Len(FilePath)) <> "\" Then FilePath = FilePath & "\"
 
 On Error Resume Next
 Kill FilePath & FileName
 
 On Error GoTo 0
 
 FileNumber = FreeFile
 
 Open FilePath & FileName For Binary Access Write Lock Read Write As
 #FileNumber
 For i = 0 To UBound(FileContent) - 1
 Put #FileNumber, , FileContent(i)
 Next
 
 Close #FileNumber
 
 End Sub
 
 
 -------------------------------------
 Med venlig hilsen
 Thong
 
 
 
 
 
 
 |  |  | 
  Bjarke Walling Peter~ (12-06-2002) 
 
	
          | |  | Kommentar Fra : Bjarke Walling Peter~
 | 
 Dato :  12-06-02 19:23
 | 
 |  | Thong Tri Nguyen skrev:
 > Hej Grp
 >
 > Jeg har lavet følgende sub som i enkelte tilfælde giver
 > 'Path/File access error'
 >
 > Denne sub oprette en ny fil, hvis der findes en i forvejen skal den
 slettes
 > først.
 > FilePath, FileName og FileContent er alle ok !
 
 Du kan bruge følgende subrutine:
 
 Private Sub DeleteFile(ByVal Filename As String)
 On Error Resume Next
 If Dir(Filename, vbNormal) <> "" Or Dir(Filename, vbHidden) <> "" Then
 Kill Filename
 End If
 Err.Clear
 End Sub
 
 Evt. kan man også blot gøre følgende:
 
 On Error Resume Next  ' Gør at der ikke kommer fejl
 Kill Filename  ' Sletter filen - hvis den ikke findes => fejl (afbryder ikke
 programmet)
 On Error Goto 0  ' Fjerner evt. fejl fra hukommelsen og viser nu
 efterfølgende fejl igen
 
 .... men denne metode er dog ikke god skik.
 I øvrigt skal man (for at være helt sikker på at filen kan skrives) også
 tjekke om der eksisterer en mappe med samme navn som filen (en fil og mappe
 i samme mappe kan ikke hedde det samme). Det kan gøres ved:
 
 If Dir(Filename, vbNormal Or vbDirectory) <> "" Or Dir(Filename, vbHidden Or
 vbDirectory) <> "" Then
 ' Enten en fil eller mappe ved navnet 'Filename' eksisterer
 End If
 
 Du bør først slette filen og efterfølgende tjekke om der eksisterer en
 fil/mappe med det navn - hvis der gør det bliver du næsten nød til blot at
 afslutte funktionen med en eller anden fejlkode. Det kan nemlig være rimelig
 bøvlet at slette en mappe. Det kunne jo også være at filen ikke var blevet
 slettet, hvis nu det kører på et NT-system og den aktuelle bruger ikke havde
 adgang til at slette lige den fil.
 
 Håber du kunne bruge det til noget.
 
 Mvh. Bjarke
 
 
 
 
 |  |  | 
  Harald Staff (13-06-2002) 
 
	
          | |  | Kommentar Fra : Harald Staff
 | 
 Dato :  13-06-02 18:57
 | 
 |  | "Thong Tri Nguyen" <thong@kampsax.dtu.dk> skrev i melding
 news:ae8077$8gt$1@eising.k-net.dk...
 > Hej Grp
 >
 > Jeg har lavet følgende sub som i enkelte tilfælde giver
 > 'Path/File access error'
 >
 > Denne sub oprette en ny fil, hvis der findes en i forvejen skal den
 slettes
 > først.
 > FilePath, FileName og FileContent er alle ok !
 
 Hei Thong
 
 Undres på om du ikke har overproblematisert før du testet enklest mulige.
 Denne oppretter/skriver, eventuelt overskriver om filen finnes:
 
 Sub test()
 Open "C:\temp\test.txt" For Output As #1
 Print #1, Now
 Close #1
 End Sub
 
 Du for problemer kun om path/folder ikke finnes eller om du ikke har
 skriveprivilegier til filen.
 
 HTH. Beste hilsen Harald
 
 
 
 
 
 
 |  |  | 
 |  |