Eine Anweisung wie PChar(aWideString) geht zwar, liefert aber eine Compiler-Warnung "bedenkliche Typumwandlung". Resultat einer solchen Anweisung ist meistens, dass nur das erste Zeichen ankommt, da das zweite Byte in einem WideString in aller Regel #0 ist (wenn man unsere Zeichen so verwendet).
Wenn man einen String direkt nach PWideChar castet, kommt meistens asiatisches Zeug bei raus:
Delphi-Quellcode:
var s:
String;
begin
s := '
Hallo Welt';
WideShowMessage(PWideChar(s));
// WideShowMessage aus den TNT-Unicode-Controls
end;
liefert eine Meldung wie im Anhang. Deine Funktion läuft also wahrscheinlich durch, findet aber keine Ordner mit so einem Namen.
Und ob man nun Edit1.Text zuerst in einen WideString packt, oder in einer Zeile doppelt castet, dürfte egal sein.