Hello, in the code below sometimes (randomly) the file saving fails, with this error message:
"The requested operation cannot be performed on a file with a user-mapped section open."
This is the code:
Dim dirInfoM As New System.IO.DirectoryInfo(DirPdfSingoliData)
Dim FilesSingoli As String = "ServizioExtra *"
fileInfoMs = dirInfoM.GetFiles(FilesSingoli)
Dim fInfoM As New System.Collections.Generic.List(Of System.IO.FileInfo)()
fInfoM.AddRange(fileInfoMs)
Dim nomefileunico As String = PercorsoOrigine & "\Extra " & _
StrDup(2 - Len(LTrim(RTrim(Day(DataServizio)))), "0") & LTrim(RTrim(Convert.ToString(Day(DataServizio)))) & "-" & _
StrDup(2 - Len(LTrim(RTrim(Month(DataServizio)))), "0") & LTrim(RTrim(Convert.ToString(Month(DataServizio)))) & "-" & _
LTrim(RTrim(Convert.ToString(Year(DataServizio)))) & ".pdf"
For Each filettoM As System.IO.FileInfo In fInfoM
If Not My.Computer.FileSystem.FileExists(nomefileunico) Then
Dim documentovuoto As New PdfDocument()
documentovuoto.LoadFromFile(DirPdfSingoliData & "\" & filettoM.Name)
documentovuoto.SaveToFile(nomefileunico)
documentovuoto.Close()
documentovuoto.Dispose()
documentovuoto = Nothing
Else
' questo funziona con numero di pagine illimitate per pdf:
Dim files As String() = New String() {nomefileunico, DirPdfSingoliData & "\" & filettoM.Name}
Try
Dim docs(files.Length - 1) As PdfDocument
docs(0) = New PdfDocument(files(0))
docs(1) = New PdfDocument(files(1))
For npagina = 0 To docs(1).Pages.Count - 1
docs(0).InsertPage(docs(1), npagina)
Next
docs(0).SaveToFile(nomefileunico, Spire.Pdf.FileFormat.PDF)
docs(0).Close()
docs(0).Dispose()
docs(1).Close()
docs(1).Dispose()
docs = Nothing
files = Nothing
Catch ex As Exception
Messaggio = New DataCenter.Classi.Oggetti.Utilita.Messaggio
Messaggio.IdTipo = DataCenter.Classi.Oggetti.Utilita.Messaggio.TipoMessaggio.TMErrore
Messaggio.Testo = "Errore in lettura scrittura pdf, il file è impegnato da altro utente o ci sono limitazioni di accesso. " & ex.Message
objLabelMessaggioErrore.Text = "Errore in lettura scrittura pdf, il file è impegnato da altro utente o ci sono limitazioni di accesso. " & ex.Message
Messaggi.Add(Messaggio)
Messaggio = Nothing
ScritturaPdfServizioExtraGiornalieroAS400 = False
Exit Function
End Try
End If
Next
It happens even if I save the file into another directory, and I'm sure nobody is accessing it while the saving is done.
The datas in the files to write are always the same.
Can you please help me?
thank you in advance,
Paola