Domino 9 und frühere Versionen > Entwicklung
Fehler bei SetFileAttr
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