Ergebnis 1 bis 9 von 9

Thema: Sehr seltsames .net Stream close Problem mit speziellen Files.

  1. #1
    Senior Avatar von maz
    Registriert
    Jan 2016
    Beiträge
    529
    Gefällt mir!
    206
    Du gefällst: 428

    Sehr seltsames .net Stream close Problem mit speziellen Files.

    Ich habe ein sehr sehr seltsames .net Problem.
    Und zwar kann ich bei ganz wenigen Files den Stream nicht schliessen.
    Wobei, schliessen kann ich ihn schon, nur ist das File danach noch immer vom Programm geöffnet.
    Passieren tut das so gut wie nie, aber GulliGirl hat eine Handvoll dieser Dateien "gefunden".

    Ausserdem: öffnen und verarbeiten lässt sich der Stream prima.

    Hier der Link zu einem dieser Assi Files: File-Upload.net - FALLEN.NFO


    Dieser Beispielcode sollte eigentlich bei jedem File funktionieren meines Wissens, nur tut ers nicht

    VB:
    Code:
    Imports System.IO
    Imports System.Threading
    Module Module1
      Sub Main()
        Dim testfile As String = "c:\testfile.txt"
        Dim testStream As FileStream = File.OpenRead(testfile)
        Thread.Sleep(500)
        testStream.Dispose()
        File.Delete(testfile)
        'Gleiches Problem mit Using
        'Using testStream = New FileStream(testfile, FileMode.Open, FileAccess.Read)
        'Thread.Sleep(500)
        'End Using
        'File.Delete(testfile)
      End Sub
    End Module
    C#:
    Code:
    using System.Collections;
    using System.Collections.Generic;
    using System.Data;
    using System.Diagnostics;
    
    static class Module1
    {
     public static void Main()
     {
      string testfile = "c:\\testfile.txt";
      FileStream testStream = File.OpenRead(testfile);
      Thread.Sleep(500);
      testStream.Dispose();
      File.Delete(testfile);
    }
    Irgendjemand ne Idee? Oder sogar schon selbst mal erlebt.
    Geändert von maz (30.06.2016 um 20:15 Uhr)
    Nach Oben

  2. #2
    Junior
    Registriert
    Mar 2015
    Beiträge
    90
    Gefällt mir!
    11
    Du gefällst: 45
    Hast du mal versucht, den FileStream in einem using-Block zu instanzieren?
    Nach Oben

  3. #3
    Senior
    THEMENSTARTER

    Avatar von maz
    Registriert
    Jan 2016
    Beiträge
    529
    Gefällt mir!
    206
    Du gefällst: 428
    Klar, stwht auch so im Example VB Code als Kommentar. Das Problem scheint an sich unlösbar, den der Editor und alle anderen von mir getesteten Programme haben das selbe Problem. Ich habs nun so gelöst, das ich in so einem fall über einen cmd Befehl die Datei lösche, was prima klappt.
    Nach Oben

  4. #4
    Anfänger
    Registriert
    Dec 2015
    Beiträge
    12
    Gefällt mir!
    4
    Du gefällst: 12
    Wie äußert sich das Problem denn genau? Schlägt die File.Delete()-Methode fehl (IOException)?

    Ich kann mir nicht vorstellen, dass dein eigenes Programm daran Schuld ist. Könnte es nicht sein, dass ein anderer Prozess zum Zeitpunkt deines Delete()-Aufrufs Zugriff auf die Datei erlangt hat?
    Nach Oben

  5. #5
    Senior
    THEMENSTARTER

    Avatar von maz
    Registriert
    Jan 2016
    Beiträge
    529
    Gefällt mir!
    206
    Du gefällst: 428
    Du kannst dir das file ja mal laden und das Programm nachbauen. Das File muss einen vermurksten Overhead haben, denn wie gesagt, jedes Programm das ich testete hat Probleme damit. Nach einem Upload auf GD ist das File dann auch völlig ok
    .net kann die Datei nicht mal löschen, wenn man keinen Stream starten. Das schlägt immer fehl.

    Aber eben ich hab ja ne Lösung gefunden, ich machs einfach über ein cmd befehl das geht.
    Nach Oben

  6. #6
    Anfänger
    Registriert
    Dec 2015
    Beiträge
    12
    Gefällt mir!
    4
    Du gefällst: 12
    Ich habe es eben ausprobiert und die Datei wurde ordnungsgemäß gelöscht. Ohne die genaue Exception zu kennen, die bei dir auftritt, wird es leider sehr schwierig, den Fehler einzugrenzen und dir zu helfen.

    Es scheint aber weniger an der Datei selbst zu liegen, sondern vielmehr an sonstigen Einflüssen (z.B. könnten Dateirechte, das Dateisystem oder eben andere Prozesse daran Schuld sein).
    Nach Oben

  7. #7
    Senior
    THEMENSTARTER

    Avatar von maz
    Registriert
    Jan 2016
    Beiträge
    529
    Gefällt mir!
    206
    Du gefällst: 428
    Sry ich war etwas dämlich. Der Upload repariert die Datei, das ist mir auch schon bei einem Upload auf GD aufgefallen.
    Hier ein rar mit dem FIle, das vermutlich bei dir auch nicht geht: File-Upload.net - Test.rar

    Andere Einflüsse sinds zu 99% nicht Ich krieg auch keinen schlaue Exzeption, nur das der Prozess in Benutzung sei. Wenn ich nachsehe, welcher das ist, ist der des Programms. Und eben, versuch mal als erstes das NFO im editor zu öffnen, ein Zeichen zu verändern und es wieder zu speichern. Das geht nämlich schon nicht.
    Nach Oben

  8. #8
    Anfänger
    Registriert
    Dec 2015
    Beiträge
    12
    Gefällt mir!
    4
    Du gefällst: 12
    Ich bekomme eine UnauthorizedAccessException. Was daran nicht hilfreich sein soll, musst du mir erklären.

    Schaut man sich die Dateiattribute an, stellt man fest, dass beide Dateien "read only" sind. Die Bibliotheksfunktionen von .NET zum Löschen schlagen dann natürlich fehl. Das RAR-Format speichert diese Dateiattribute (0x21 statt 0x20, siehe hier), deshalb kann ich den Fehler jetzt auch nachvollziehen. Beim Upload der eigentlichen Datei wird hingegen nur der Inhalt übertragen und sämtliche Dateiattribute gehen verloren.

    Die Lösung deines Problems sieht nun (in C#) ganz einfach folgendermaßen aus:

    Code:
    File.SetAttributes(testfile, FileAttributes.Normal);
    File.Delete(testfile);
    Vor dem Löschen werden die Dateiattribute also zunächst zurückgesetzt, wodurch insbesondere das Read-Only-Flag gelöscht wird.
    Nach Oben

  9. Diesen Mitgliedern gefällt dieser Beitrag:

    maz

  10. #9
    Senior
    THEMENSTARTER

    Avatar von maz
    Registriert
    Jan 2016
    Beiträge
    529
    Gefällt mir!
    206
    Du gefällst: 428
    Vielen Dank!
    Ich schau nochmal meine Exeption an, aber ich war wohl einfach blind. >_<
    Nach Oben

Ähnliche Themen

  1. Suchmaschinen Suche für Warez im speziellen eBooks
    Von r3vO im Forum Daily Talk & Offtopic
    Antworten: 10
    Letzter Beitrag: 30.05.2022, 08:41
  2. Antworten: 0
    Letzter Beitrag: 10.04.2020, 09:05
  3. 129 sehr langsam
    Von Der Buchhalter im Forum IntelligeN
    Antworten: 3
    Letzter Beitrag: 11.10.2017, 23:48
  4. Sehr einfache und preiswerte Bolognese
    Von Dreamer123 im Forum Kochen & Essen
    Antworten: 1
    Letzter Beitrag: 08.08.2017, 13:33

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
SzeneBox.org... im Mittelpunkt der Szene!
© since 2015 szeneBOX.org - All Rights Reserved
Domains: www.szenebox.org