[VB.net] IO Error met filestream

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • skate master
  • Registratie: September 2004
  • Laatst online: 05-10 20:54

skate master

Autodesk Educator Expert

Topicstarter
Mensen,

ik probeer in een AutoCAD add-in een Excel bestand in een filestream in te lezen om vervolgens de data weer te geven. Maar wat ik ook probeer ik blijf een IO Error ontvangen dat het bestand al in gebruik is.

reeds geprobeerd
  • Het bestand voor openen in progje geopend in Excel, geen melding over read-only, bestand en Excel netjes afgesloten
  • Bestand op een andere schijf geplaatst
  • Pad naar bestand hardcoded opgenomen
Waarom krijg ik de melding System.IO.IOException: The process cannot access the file 'K:\Test Data\meting-01.xlsx' because it is being used by another process.

Hieronder de code zoals ik deze nu in een verder leeg project heb staan om andere zaken uit mijn tool uit te sluiten, echter met dezelfde melding tot gevolg.

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim dlgFileOpen As OpenFileDialog = New OpenFileDialog()

    Dim sFileInput As String

    If dlgFileOpen.ShowDialog() = DialogResult.OK Then

        sFileInput = dlgFileOpen.FileName

    Else

        Exit Sub

    End If

    'read xlsx file
    TextBox1.Text = "sFileInput: " & sFileInput & vbCrLf
    'IO Error op onderstaande regel
    Dim fs = New FileStream(sFileInput, FileMode.Open, FileAccess.Read)
    TextBox1.AppendText("Bestand geopend" & vbCrLf)
end sub


Ter info de volledige Exception melding
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
************** Exception Text **************
System.IO.IOException: The process cannot access the file 'K:\Test Data\meting-01.xlsx' because it is being used by another process.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   at System.IO.File.Open(String path, FileMode mode, FileAccess access)
   at AnkerMeting.UCmain.Button1_Click(Object sender, EventArgs e) in K:\Documenten\Visual Studio 2015\Projects\FileStreamTest\UCmain.vb:line 21
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


Wat zie ik over het hoofd?

Beste antwoord (via skate master op 11-06-2018 16:36)


  • elhopo
  • Registratie: December 2005
  • Laatst online: 01-10 14:30
Kijk eens naar Process explorer van sysinternals. Daar zou je mee moeten kunnen vinden wie het bestand anders nog open kan hebben.
https://docs.microsoft.co...ownloads/process-explorer

Blijkt dat citroenvlinders helemaal niet naar citroen smaken.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Virusscanner?

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • skate master
  • Registratie: September 2004
  • Laatst online: 05-10 20:54

skate master

Autodesk Educator Expert

Topicstarter
Net even snel getest, helaas heeft het uitzetten van de virusscanner geen effect.

Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

skate master schreef op maandag 11 juni 2018 @ 14:46:
[...]

Net even snel getest, helaas heeft het uitzetten van de virusscanner geen effect.
Probeer process monitor eens of je kunt zien of er toevallig een proces de file hijacked voordat je hem kunt openen.

Je hebt hem toevallig niet in Excel open oid?

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • reb3lzrr
  • Registratie: April 2009
  • Laatst online: 06-10 11:25
Het kan zijn dat AutoCAD zelf het bestand in gebruik heeft omdat je de filestream niet juist afsluit.

Probeer de filestream in een using block te openen: https://docs.microsoft.co...tatements/using-statement

Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • elhopo
  • Registratie: December 2005
  • Laatst online: 01-10 14:30
Kijk eens naar Process explorer van sysinternals. Daar zou je mee moeten kunnen vinden wie het bestand anders nog open kan hebben.
https://docs.microsoft.co...ownloads/process-explorer

Blijkt dat citroenvlinders helemaal niet naar citroen smaken.


Acties:
  • 0 Henk 'm!

  • skate master
  • Registratie: September 2004
  • Laatst online: 05-10 20:54

skate master

Autodesk Educator Expert

Topicstarter
elhopo schreef op maandag 11 juni 2018 @ 15:07:
Kijk eens naar Process explorer van sysinternals. Daar zou je mee moeten kunnen vinden wie het bestand anders nog open kan hebben.
https://docs.microsoft.co...ownloads/process-explorer
Het blijkt dat bij mij Windows Explorer het bestand in gebruik houd wanneer het geselecteerd is.
Windows Explorer afsluiten of in een andere map zetten is voldoende om het script te laten functioneren.
Pagina: 1