Mrowqa Temat założony przez niniejszego użytkownika |
Ścieżka do pliku » 2011-01-02 20:09:49 Witam, mam jedno pytanie, otóż: co zrobic, aby uzyskac aktualna sciezke odpalonego programu ? Chodzi mi o to ze jak otwieram plik strumieniem, to zebym mogl podac "niepelna" sciezke, tzn. strumien.open( "baza\\nazwa_pliku.rozszerzenie", tryb_otwarcia )
co zrobic aby moc tak wpisywac ? czy jest jakas funkcja, ktora zwraca string (lub jakis inny ciag znakow) z aktualna sciezka programu ?? (oczywiscie folderu, w ktorym znajduje sie ten program) z gory dziekuje, pozdrawiam |
|
ison |
» 2011-01-02 20:14:22 i tak możesz tak przecież robić, nie musisz podawać pełnej ścieżki wyświetlanie ścieżki odpalonego programu: #include <cstdio>
int main( int argc, char * argv[] ) { if( argc > 0 ) printf( "Sciezka programu: %s\n", argv[ 0 ] ); }
|
|
pekfos |
» 2011-01-03 14:14:48 to nie ścieżka tylko polecenie odpalające program. jak uruchomisz przykład.exe przez cmd to wa argv[0] będzie "przykład" a nie np C:\przyklad.exe |
|
DejaVu |
» 2011-01-03 14:31:51 |
|
Mrowqa Temat założony przez niniejszego użytkownika |
» 2011-01-04 09:13:22 Moglibyscie podac jakis przyklad ? ja w WinAPI sie nie orientuje jeszcze (nie uczylem sie) Probowalem tak wywolac: #include <iostream> #include <windows.h> int main() { std::cout << GetCurrentDirectory( 2, 0 ) << std::endl; system( "pause" ); }
i ciagle zamiast sciezki otrzymywalem: 28 Aby kontynuowac, nacisnij dowolony klawisz . . .
Mi konretnie chodzi o to by to byl string (albo c-string lub jakas tablica char czy cos takiego, zeby sie dalo dodac), bo chcialem dodac do sciezki folder, i do tego folderu zapisywac i odczytywac pliki, np: string sciezka = aktualna_sciezka + "baza\\" + nazwa_pliku; fstream strumien; strumien.open( sciezka, tryb_otwarcia );
|
|
DejaVu |
» 2011-01-04 09:18:27 Normalnie szczyt lenistwa - mieć funkcję i nie dogooglać sobie. Ba... wystarczyło wejść na msdn'a:
#include <windows.h> #include <cstdio> #include <tchar.h>
#define BUFSIZE MAX_PATH
void _tmain( int argc, TCHAR ** argv ) { TCHAR Buffer[ BUFSIZE ]; DWORD dwRet; if( argc != 2 ) { _tprintf( TEXT( "Usage: %s <dir>\n" ), argv[ 0 ] ); return; } dwRet = GetCurrentDirectory( BUFSIZE, Buffer ); if( dwRet == 0 ) { printf( "GetCurrentDirectory failed (%d)\n", GetLastError() ); return; } if( dwRet > BUFSIZE ) { printf( "Buffer too small; need %d characters\n", dwRet ); return; } if( !SetCurrentDirectory( argv[ 1 ] ) ) { printf( "SetCurrentDirectory failed (%d)\n", GetLastError() ); return; } _tprintf( TEXT( "Set current directory to %s\n" ), argv[ 1 ] ); if( !SetCurrentDirectory( Buffer ) ) { printf( "SetCurrentDirectory failed (%d)\n", GetLastError() ); return; } _tprintf( TEXT( "Restored previous directory (%s)\n" ), Buffer ); }
|
|
Mrowqa Temat założony przez niniejszego użytkownika |
» 2011-01-04 09:25:21 ja tylko przetlumaczylem sobie to z poczatku, i popatrzylemna na inna funkcje, ale nie znalazlem tego, dzieki
EDIT: latwiejszy ( i dla mnie do zrozumienia ;p ) jest przyklad ison'a :D |
|
« 1 » |