Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Lange Dateinamen | Herbers Excel-Forum


Betrifft: Lange Dateinamen von: gerwas
Geschrieben am: 20.08.2012 15:57:17

Hallo weite Welt - mal wieder

ich habe hier eine elend lange Liste mit Pfaden und Dateinamen, die jeweils mehr als 256 Zeichen lang sind

Mein Versucht Dir(Pfad & Datei) endet mit Fehler 53 und das Macro bricht ab. Auch haben Versuche mit dem FSOFilesystem keinen Erfolg gezeigt.

Ich hätte nun gern ein Macro, welches mir die betreffenden Dateien löscht oder umbenennt oder einen Tipp dazu?!?!?!?!

Gruß gerwas

  

Betrifft: AW: Lange Dateinamen von: Josef Ehrensberger
Geschrieben am: 20.08.2012 16:19:29


Hallo gerwas,

probier mal so.

' **********************************************************************
' Modul: Modul3 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal _
  lpszLongPath As String, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long

Private Const MAX_PATH = 255

Function GetShortPath(ByVal strPath As String) As String
  Dim nRetVal As Long
  Dim strTmp As String
  
  strTmp = Space$(MAX_PATH + 1)
  nRetVal = GetShortPathName(strPath, strTmp, MAX_PATH)
  
  If nRetVal <> 0 Then
    GetShortPath = Left$(strTmp, nRetVal)
  End If
End Function



Sub test()
  Dim strFile As String
  
  strFile = "C:\Windows\System32\EventProviders\de-de\spcmsg.dll.mui"
  
  MsgBox GetShortPath(strFile)
End Sub






« Gruß Sepp »



  

Betrifft: AW: Lange Dateinamen von: gerwas
Geschrieben am: 21.08.2012 09:25:33

HAllo Sepp

das funktioniert, solange Pfad und Dateinamen zusammen nicht über 255 Zeichen kommen.

Habe jetzt per Shell "net use S: \\teil\des\langen\pfadnamens, 1" Abhilfe gefunden.

Trotzdem danke
Gerwas


Beiträge aus den Excel-Beispielen zum Thema "Lange Dateinamen"