Jump to content

Verzeichnisgröße ermitteln


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hi,

 

also ich habe es nicht mit dem konkreten Script von oben getestet, aber generell kann die PowerShell auch mit mehr als 256 Zeichen umgehen, das habe ich schon getestet. Da dieselben APIs benutzt werden, würde ich vermuten, daß auch das o.g. Script keine Probleme macht.

 

Viele Grüße

olc

Geschrieben

Ich hatte letztens nur das Problem unter .NET. Die managed API konnte nur bis 256 Zeichen Pfadlänge, also musste ich auf den "Umweg" über die kernel32.dll ausweichen. Tolle alte C-Interfaces kommen da wieder an die Oberfläche... *grusel*

Geschrieben

...mh, interssant. PowerShell ist ja in großen Teilen .Net - von daher wundert es mich, daß ich dann keine Probleme hatte.

 

Na mal schauen, ich check das auch noch mal ab. Kommt vielleicht auf die aufgerufene Funktion oder Methode an.

 

Gruß olc

Geschrieben

In meinem Fall war ich (bis ich auf das Problem stieß) über System.IO.FileInfo gegangen. Und der gesamte System.IO-Namespace scheint über die "begrenzte" Managed-API zu gehen. Der Umweg zur Lösung führt dann über System.RunTime.InterOpServices und die Anbindung der kernel32.dll.

 

Gruß

Carsten

Geschrieben

Hallo

es funktioniert weder mit .Net System.IO noch mit Comobjekten :confused:

 

foldername="C:"
for ($i = 1;$i -lt 25;$i++){
[system.io.directory]::createdirectory($foldername)
$foldername=$foldername+"\123456789012345"
}

 

$foldername="C:"
$fso=new-object -com "Scripting.FileSystemObject"
for ($i = 1;$i -lt 25;$i++){
$foldername=$foldername+"\123456789012345"
$fso.createfolder($foldername)
}

 

beide Scripte brechen ab, wenn 260 Zeichen Pfadlänge überschritten werden. Ebenso in VisualBasic.

Vielleicht geht's mal mit den höheren .Net Versionen als 2.0

 

cu

blub

Geschrieben

N'Abend,

 

da brat mir doch einer 'nen Storch - ich bin mir vollkommen sicher, daß ich es vor einiger Zeit erfolgreich getestet habe.

Nach blubs Post habe ich ebenfalls noch einmal getestet - und auch den Fehler bekommen...

 

Ich check das nochmal ab, irgendwie muß ich es ja damals geschafft haben. Sollte ich mich jedoch geirrt haben, dann entschuldigt die Verwirrung.

Konnte auch nirgendwo eine Einschränkung der Aussage von der maximalen Pfadlänge finden, auch nicht in Bezug auf .NET. Naming a File or Directory (Windows)

 

Viele Grüße

olc

Geschrieben

Wie hier dokumentiert, ist das Auftreten der Exception unabhängig von der Version des .NET-Frameworks. DIe Exception in der ManagedAPI ist in allen Version von 1.0 bis 3.5 implementiert. Probiert mal eine Notation mit

\\?\[/Code]

vor dem Pfad aus, das wäre dann der umständlichere Weg über die Implementierung der Kernel32.dll, auch wenn die selbe ManagedAPI genutzt wird. Diese reicht das dann intern weiter. Siehe auch: David L. Walker - .NET Solution Provider : PathTooLongException work around Oder man macht es dann ganz umständlich: VBnet™ Visual Basic Developers Resource Centre (so musste ich es leider machen, da ich ein paar mehr Infos über die Folder brauchte.

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...