Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: juebri am 09.12.03 - 13:11:44

Titel: object.filesize
Beitrag von: juebri am 09.12.03 - 13:11:44
Hallo,

ich habe einen Agenten in einer Datenbank erstellt, der Dateien aus einem Pfad in RT-Felder eines neuen Notes-Dokuments erstellt.

...
   Dim session As New NotesSession()
   Dim view As NotesView
   Dim doc As NotesDocument
   Dim db As NotesDatabase
   Set db = session.CurrentDatabase
   Set doc = db.CreateDocument
   doc.Form = "Dateiarchiv"   
....

   'Für jede Datei wird ein eigenes RT-Feld erstellt   
   Redim Datei(Ubound(DateiArray ))   
   For index = Lbound( DateiArray ) To Ubound(DateiArray )
      Set Datei(index) = doc.CreateRichTextItem("Datei" & index)
   Next

....

   'Die Dateien werden in die erstellten Felder kopiert
   If Isarray( DateiArray ) Then
      Redim Dateianhanggroesse(Ubound(DateiArray ) )
      
      For index = Lbound( DateiArray ) To Ubound(DateiArray )
         Set object = Datei(index).EmbedObject(EMBED_ATTACHMENT, "", TempOrdner & DateiArray(index))
         Print |Datei angehängt: | & TempOrdner & DateiArray( index )
      Next
   End If


Wenn ich nun in der Schleife des vorstehenden Absatzes folgenden Code eintrage:

msgbox object.name
msgbox object.filesize

dann wird der Name des Objekts angezeigt, als Dateigröße aber 0.

In dem Array Dateianhanggroesse(Ubound(DateiArray ) ) sollen nämlich die File-Größen hinterlegt werden.

Warum wirft der mit nicht die Filegröße aus.

Hat jemand eine Idee?
Titel: Re:object.filesize
Beitrag von: ata am 09.12.03 - 13:13:19
... versuch es mal mit CStr( object.FileSize )...

ata
Titel: Re:object.filesize
Beitrag von: koehlerbv am 09.12.03 - 13:16:16
Wurde Dein Doc denn schon gespeichert, wenn Du die Dateigrösse ermittelst ? Sonst ist die nämlich logischerweise 0.

Bernhard
Titel: Re:object.filesize
Beitrag von: juebri am 09.12.03 - 13:29:47
Das Dokument wurde noch nicht gespeichert, wird erst am Ende der Routine erfolgen. Nur, warum wirft object.name den Namen des Dateianhangs aus (auch wenn das Doc noch nicht gespeichert ist)?
Titel: Re:object.filesize
Beitrag von: Semeaphoros am 09.12.03 - 14:00:30
Warum nicht? Der ist ja schon bekannt. Die Dateilänge ist tatsächlich erst beim Speichern notwendig und ich vermute mal, dass Notes bei einem neuen Attachement die Datei tatsächlich erst beim Speichern einliest.

Andere Frage, woher kommen denn diese Attachements? Die müssen ja irgendwo im Dateisystem herumliegen und da liesse sich ja die Dateigrösse des Originals auslesen?
Titel: Re:object.filesize
Beitrag von: juebri am 09.12.03 - 18:09:20
Hi, ich lese die Dateien von jedem beliebigen Medium, lege diese im Ordner D:\Temp\ ab, kompremiere die und hänge diese im Dokument in das entsprechende RT-Feld.

Hab einen Lösungsansatz: Ich könnte in der (Ausgabe)-Maske ein Script einbauen, das die Dateigröße ermittelt, sobald das Dokument das erste mal geöffnet wird.

Aber ich will eigentlich alles in dem Agenten einbinden, der die RT-Felder füllt.  Da greife ich ja eh schon auf alle Klassen etc. zu.

Werde mal den Hinweis "Die müssen ja irgendwo im Dateisystem herumliegen" aufgreifen. Hast Du Lösungsansätze?
Titel: Re:object.filesize
Beitrag von: koehlerbv am 09.12.03 - 18:20:10
Viel einfacher ist vermutlich, das Doc samt Attachments zu speichern, dann FileSize zu ermitteln und nochmal zu speichern ;-)

Bernhard
Titel: Re:object.filesize
Beitrag von: Semeaphoros am 09.12.03 - 18:31:57
FileLen function
Titel: Re:object.filesize
Beitrag von: juebri am 10.12.03 - 11:33:22
Yep, manchmal liegen die Lösungen so greifbar nahe und man sieht sie nicht ;-))

If Isarray( DateiArray ) Then
Redim Dateianhanggroesse(Ubound(DateiArray ) )
For index = Lbound( DateiArray ) To Ubound(DateiArray )
Set object = datei(index).EmbedObject(EMBED_ATTACHMENT, "", TempOrdner & Strrightback(Strleftback(DateiArray(index),"."),"\") & |.zip|)
Dateianhanggroesse(index)=Filelen(TempOrdner & Strrightback(Strleftback(DateiArray(index),"."),"\") & |.zip|)
Msgbox Dateianhanggroesse(index)
Print |Datei angehängt: | & TempOrdner & DateiArray( index )
Next
End If

Danke für eure Hilfe!
Titel: Re:object.filesize
Beitrag von: Semeaphoros am 10.12.03 - 11:58:34
Setzest Du den Thread noch auf erledigt? Buhtong über jeder Message