tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1476
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    masa83 masa83 ist offline Grünschnabel
    Registriert seit
    Feb 2006
    Beiträge
    4
    Hallo Gemeinde,

    Ich versuche Dateien über die Netzwerkfreigabe zu löschen.
    Das Löschen realisiere ich mit diesem Code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    'Remotedir = “\\ComputerName\Laufwerk$\...\...\...”
    For Each tmpFile As String In System.IO.Directory.GetFiles(Remotedir)
     
      System.IO.File.SetAttributes(tmpFile,  System.IO.FileAttributes.Normal)
      System.IO.File.Delete(tmpFile)
     
    Next

    Hierbei stoße ich auf ein Problem das der gestammte Dateiname mehr als 260 Zeichen lang ist.
    Weil zu dem eigentlichen Namen der Name der Netzwerkfreigabe dazukommt.
    Wenn auf dem PC: 192.168.1.10 die Datei: „c:\Programme\Test\test.dat“ gelöscht werden soll, ist die Komplete lange des Dateinamens Lokal auf dem PC (26 Zeichen).
    Wenn ich dies aber von einem anderen PC die Datei löschen will, kommt noch der Name der Freigabe hinzu, somit wäre dies der vollständige Pfad:
    „\\192.168.1.10\\ c$\Programme\Test\test.dat“
    Also in diesem Beispiel wird das Löschen ohne Probleme Funktionieren weil die gesamte lange des Namens nicht die 260 grenze überschreitet.
    Wenn aber z.B. auf diesem PC eine Datei liegt die bereits die volle Länge des Namens (260 Zeichen) hat ist das löschen der Datei unmöglich.
    Wie kann man dieses Problem umgehen?

    Bin für jeden Tipp dankbar!


    Mit freundlichen Grüßen
     

  2. #2
    masa83 masa83 ist offline Grünschnabel
    Registriert seit
    Feb 2006
    Beiträge
    4
    hiho
    hat keiner eine Idee
     

  3. #3
    Avatar von JensG
    JensG JensG ist offline Mitglied Platin
    Registriert seit
    Jun 2004
    Ort
    Gera (Thüringen)
    Beiträge
    517
    Hallo masa,

    die .NET Klassen sind ziemlich fix auf ~260 Zeichen pro Pfad beschränkt.
    Falls du echt längere Pfade brauchst, bleibt wohl nur selber PInvoke
    auf die Win32 APIs und mit der 'UNC' -Schreibweise "\\?\D:\<path>"


    MSDN
    Naming a File [Files]

    Der Windows Explorer & Shell und etliche APIs haben tatsächliche eine Limite von total ~260 Zeichen.
    Aber das NTFS-Filesystem und einige APIs unterstützen Pfade bis 32'000 Zeichen.

    Getestet habe ich das aber selbst noch nicht.

    Gruß
    Jens
     

Ähnliche Themen

  1. Netzwerk Freigabe und server
    Von BassBox im Forum Microsoft Windows
    Antworten: 4
    Letzter Beitrag: 23.12.10, 15:40
  2. Windows-Datei-Freigabe - Netzwerk
    Von sep-karl im Forum Microsoft Windows
    Antworten: 2
    Letzter Beitrag: 22.06.09, 07:10
  3. Antworten: 9
    Letzter Beitrag: 13.07.07, 13:30
  4. Antworten: 1
    Letzter Beitrag: 11.04.07, 01:29
  5. Antworten: 2
    Letzter Beitrag: 28.08.03, 08:28