Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » relative Pfade

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
17.10.2007, 14:23 Uhr
~5000 Watt
Gast


Hallo,

ich habe folgendes Problem:

Ich lasse den Benutzer einen Dateipfad eingaben und möchte dann die betreffende Datei öffnen, das Problem ist nur, dass der Pfad einer von der Sorte ist: "CProgramme\Testordner\Testdatei.txt",
ich aber einen relative Pfadangabe, also einen von der Sorte: "..\..\..\Testordner\Testdatei.txt" brauche.

Sie sollte von meiner *.exe Datei ausgehen.

Es würde mich sehr wundern, wenn es da nicht eine Funktion von Windows gäbe, die mir bei meinem Problem hilft. Kennt jemand eine(muss nicht von indows sein)?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.10.2007, 15:05 Uhr
öni



wenn du die Testdatei öffnen willst kannst du das immer machen egal wo sie liegt du musst nur wissen wie ihr Name lautet und sie muss im selbem Verzeichnis liegen wie deine eigene *.Exe.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.10.2007, 15:13 Uhr
~5000 Watt
Gast


Das Problem ist nur:
Ich kann nicht davon ausgehen, dass diese Datei auch im Verzeichniss der *.exe-liegt. Ich habe einen Dateibrowser eingebunden, mit dem der User seine Datei suchen kann.

Hab dann aber leider einen Pfad a'la:

CProgrmme\MeineDatei\Datei.txt

wenn meine exe im Pfad CProgramme\MeinProgramm liegt und die Datei namens "Datei.txt" im Verzeichnis CProgramme\MeineDatei liegt, dann kann ich einen Pfad errechnen, der so aussieht:

"..\MeineDatei\Datei.txt" und schwups, ich kann auf die Datei zugreifen.

Ich könnte den Pfad errechnen, aber ich bin mir fast 100% sicher, dass ich auch eine Funktion von Windows dafür nehmen kann.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.10.2007, 17:18 Uhr
~5000 Watt
Gast


Ich glaube, es wird einfach nicht verstanden, was ich will.

Ich habe einen absoluten Pfad zu einer Datei und der soll zu einem relativen Pfad, abhängig von meiner *.exe umgewandelt werden.

Oder ich möchte wissen, wie ich eine Textdatei mittels ifstream/ofstream über einen ABSOLUTEN Pfad öffnen kann.

Oder wenigstens ein Denkanstoß, wie ich einen Funktion implementieren kann, die:

Ein char array mit dem absoluten Pfad entgegennimmt, irgendwie den Pfad zur .exe herausfindet und den absoluten Pfad in einen relativen umwandelt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.10.2007, 17:45 Uhr
öni



Also du meinst du hast deine *.exe an der Position X und deine Datei an der Position Y. So und nun soll deine *.exe das öffnen können was an Y liegt oder wie? Hmm das ist ne gute Frage hab keine Ahnung?!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.10.2007, 17:53 Uhr
stephanw
localhorst


Natürlich ist es möglich, eine absolut referenzierte Datei mittels Streams zu öffnen. Warum soll das nicht gehen ?

Ob es eine Windows-Funktion gibt, die Pfade in Relation zueinander setzt, weiß ich nicht. Im C/C++ Standard ist mir sowas nicht bekannt, was jedoch nichts heißen muss
--
Reden ist Schweigen und Silber ist Gold.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
17.10.2007, 21:39 Uhr
Hans
Library Walker
(Operator)


Hi,
es gibt in der WinAPI funktionen dafür, ich weis aber auch nicht wie die heissen. Aber vermutlich irgendwas mit path, also GetPath, SetPath oder so ähnlich. Am besten mal die msdn durchwühlen (lassen), oder hier im Forum die Suchfunktion benutzen. Ich meine, das Thema gab es hier auch schon mal, weis es aber gerade nicht genau.

@stephanw: Du bist lustig. Die aktuellen Standards von C und C++ kennen doch keine (Unter-) Verzeichnisse, also ist man für solche Zwecke bisher auf das API des jeweiligen BS angewiesen.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
17.10.2007, 21:49 Uhr
0xdeadbeef
Gott
(Operator)


Es sollte mich eigentlich gerade unter Windows sehr wundern, wenn es so etwas gäbe. Immerhin gibt es da nicht immer die Möglichkeit überhaupt einen relativen Pfad zu definieren - nimm an, deine .exe liegt auf C:\foo, und die Datei in D:\bar.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 17.10.2007 um 21:49 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
17.10.2007, 22:11 Uhr
Hans
Library Walker
(Operator)


stimmt, in dem Fall kommt man mit relativen Pfaden nicht weiter...
Vielleicht muss man das ganze dann über, Umgebungsvariablen machen, also jene, die in der AUTOEXEC.BAT mit set definiert werden. Also beispielsweise

Code:
SET var c: \Programme\files


Dann bliebe nur wieder die Frage zu klären, wie man damit hantiert. Das hab ich nämlich auch noch nicht gemacht...
Ach ja, in der Borlandhilfe hab ich Funktionen zur Pfadbearbeitung gefunden. Ich bin mir aber nicht sicher, ob die mal wieder nur bei Borlandcompilern funktionieren, deshalb hab ich sie erst mal nicht erwähnt.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
17.10.2007, 23:33 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Also ich kenn keine solche WinAPI Funktion und glaub auch nicht das eine solche existiert. Warum auch? Welchen Vorteil sollte man durch einen relativen Pfad haben wenn man den absoluten bereits kennt?

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: