2016-04-28 13 views
-1

Ich habe einen Ordnerpfad wie c:\appfolder\user1.active\subfolder. Es gibt mehrere Ordner in c:\appfolder, einen für jeden Benutzer, aber der Ordner des aktiven Benutzers ist durch .active Suffix markiert.Auflösen des Ordnernamens in WinAPI

Da es nur ein markierter Ordner ist, in der cmd-Konsole ich etwas mit subfolder Inhalt tun, es so den Zugriff auf:

cd c:\appfolder\*.active\subfolder 
delete myfile.txt 

Leider kann ich die Datei nicht auf die gleiche Weise in WinAPI zugreifen, für Instanz, c:\appfolder\*.active\subfolder\myfile.txt an CreateFile oder MoveFile übergeben. Also sollte ich den Namen des maskierten Ordners in den ersten passenden echten Ordnernamen auflösen.

Die Frage ist: Was ist der einfachste Weg, dies zu erreichen? Ich könnte FindFirstFile/FindNextFile verwenden, aber soweit ich mich erinnere sie immer . und .. auf den ersten, vielleicht gibt es einen besseren Ansatz, in einem einzigen Funktionsaufruf?

Grüße,

+0

Ich habe Ihre Bearbeitung zurückgesetzt. Es ist unangemessen, deine Inhalte hier zu vandalisieren, nachdem du eine Antwort erhalten hast. –

Antwort

2

Es gibt keine in einzelne Funktion gebaut zu tun, was Sie fragen. Meiner Meinung nach gibt es keinen besseren Weg, als FindFirstFile und FindNextFile zu verwenden. Sie müssen sich mit . und .. befassen, aber das ist wirklich überhaupt nicht schwierig.

+0

Sie können 'FindFirstFile()'/'FindNextFile()' in eine benutzerdefinierte Funktion einfügen, sagen wir 'GetActiveUserPath()', und verwenden Sie diese Funktion dann überall dort, wo Sie auf den Ordner des aktiven Benutzers zugreifen müssen. –