Domino 9 und frühere Versionen > Entwicklung

Fehler bei SetFileAttr

(1/2) > >>

Axel:
Hi,

ich hab hier ein recht seltsames Phänomen, was jeglicher Logik entbehrt.  :-\ :-[


Ich habe einen Agenten, der Mails exportiert. D.h. er speichert die Mailinformationen als Worddokument und löst die Dateianhänge ins gleiche Verzeichnis. Die Dateien werden zusätzlich noch schreibgeschützt.

Codeauszug:


--- Code: ---...
'Lösen der Anhänge ins gewählte Verzeichnis und einfügen eines Links in Dokument
intTitel = 0
If ( rtitem.Type = RICHTEXT ) Then
If xHasDocAttachments(doc) Then
Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
If intTitel = 0 Then
Call clsWord.Newline(2)
Call clsWord.Insert("Es sind folgende Dateianhänge vorhanden:")
Call clsWord.Newline(1)
intTitel = 1
End If  'If intTitel = 0 Then
Call clsWord.InsertLink(Cstr(cFile.ExtractFilePath(cFile.Filename)) & o.Name, o.Name)
Call clsWord.Newline(1)
'Dateianhang lösen
Call o.ExtractFile (Cstr(cFile.ExtractFilePath(cFile.Filename)) & o.Name)
Setfileattr Cstr(cFile.ExtractFilePath(cFile.Filename)) & o.Name , ATTR_READONLY
End If
End Forall
End If  'If xHasDocAttachments(doc) Then
End If  'If ( rtitem.Type = RICHTEXT ) Then

Call clsWord.SaveDoc(Cstr(cFile.Filename))
Setfileattr Cstr(cFile.Filename), ATTR_READONLY
Call clsWord.CloseWord


--- Ende Code ---

Wenn ich die Dateien lokal oder auf einem Netware 6 - Server speichert funktioniert das Ganze wunderbar. Sowie ich die Dateien auf einem Netware 5 - Server ablege, krieg ich die Fehlermeldung "File not found". Obwohl die Datei existiert.

Call clsWord.SaveDoc(Cstr(cFile.Filename))
Setfileattr Cstr(cFile.Filename), ATTR_READONLY  <- Fehlermeldung
Call clsWord.CloseWord

Die Netware - Rechte habe ich geprüft und an langen Dateinamen liegt es auch nicht. Das Schreibschützen der Anhänge funktioniert seltsamerweise.

Hat jemand eine Idee? Ich bin ratlos.


Axel

Semeaphoros:
Um, Du setzest das Attribut und schliessest erst nachträglich Word, da würde ich als Server auch sauer reagieren, denn Word hat da möglicherweise noch einen Lock drauf. Also die beiden letzten Zeilen vertauschen.

Axel:
Hi,

das hatte ich bereits versucht. Das Resultat war das gleiche -> File not found. Sorry, den Hinweis hatte ich verschluckt.

Bei Netware 6 funktioniert der Code doch so wie er ist. Was ist bei Netware 5 anders als bei 6?


Axel


Semeaphoros:
Möglicherweise ein Timing-Problem. Veruch mal folgendes



Call clsWord.CloseWord
For i=0 to 10000
  ' ganz tief durchatmen ....
Next
Setfileattr Cstr(cFile.Filename), ATTR_READONLY

Was da am Server anders ist, kann ich auch nicht sagen, Netware ist nicht gerade mein Liebligsthema ;)

Axel:
Hi,

werde ich morgen früh mal testen.


Axel

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln