VisualBasic String to Object

aggitron

Lt. Commander
Dabei seit
Jan. 2006
Beiträge
2.024
#1
Nabend,

ich habe aus einer DB einen Dateipfad (L:\Path\to\Target\12345.pdf) als String ausgelesen.
Mit der Methode Path.GetFileNameWithoutExtension möchte ich nun den Dateinamen auslesen.

Bei MS steht in der Doku dieser Codeschnipsel:
Code:
Dim fileName As String = "C:\mydir\myfile.ext"
Dim result As String

result = Path.GetFileNameWithoutExtension(fileName)
Console.WriteLine("GetFileNameWithoutExtension('{0}') returns '{1}'", fileName, result)
Laut Server Log erwartet die Methode jedoch ein Object. Habe ich hier einen Denkfehler?
Falls ich den String wandeln muss, wie müsste ich das anstellen?
 
Dabei seit
Juli 2010
Beiträge
4.990
#2
Dabei seit
Juli 2010
Beiträge
4.990
#4
Aha.










EDIT: Also geht der Code aus dem Beispiel nicht?

Vielleicht willst du uns ja was deiner Programmierumgebung sagen. Welche Programme und Versionen du benutzt.
 
Zuletzt bearbeitet:

RalphS

Lt. Junior Grade
Dabei seit
Feb. 2015
Beiträge
288
#6
Die Signatur für das Teil ist
Code:
 public static string GetFileNameWithoutExtension(string path)
Da hat sich auch nichts geändert. Aber: Die Methode findet sich unter System.IO.Path, dazu muß also System.IO.Path.Get....() angegeben werden oder natürlich System.IO importiert werden. Entsprechend könnt ich mir lebhaft vorstellen, daß die Fehlermeldung besagt, daß die Objektreferenz fehlt - normal, wenn Path nicht bekannt ist, was es nicht ist, wenn System.IO im Kontext fehlt.


Ach ja, der Vollständigkeit halber: Das gilt natürlich nur für die .NET-Variante von Visual Basic. VBA (zB innerhalb MS Office) und VBS (zB als Script für den Windows Script Host oder für klassisches ASP) sind raus, ebenso wie klassisches VisualBasic (bis Version 6).
 
Zuletzt bearbeitet:

aggitron

Lt. Commander
Ersteller dieses Themas
Dabei seit
Jan. 2006
Beiträge
2.024
#7
@RalphS
Das war der richtige Hinweis. Es handelt sich um klassisches ASP.
Es muss mit Server.CreateObject("Scripting.FileSystemObject") gearbeitet werden. Dann funktioniert es.
 
Top