Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Ta reda på filens 'path'

Postades av 2007-03-28 00:36:49 - Fredrik Boström, i forum c++, Tråden har 5 Kommentarer och lästs av 1355 personer

Jag vill ta reda på mitt egna programs 'path' men lyckas inte hitta någon funktion som klarar det utan att veta filnamnet. Detta är ett Win32 program och jag använder inte MFC (om det har någon betydelse).

Anledningen till att jag behöver 'pathen' är för att mina fopen() har krånglat när jag skriver in filnamnen utan någon path, d.v.s. att filen skall hamna i samma folder som programmet.

M.v.H Fredrik


Svara

Sv: Ta reda på filens 'path'

Postades av 2007-03-28 00:42:55 - Simon Dahlbacka

Det här hjälper inte dej direkt men generellt sett så ska du inte spara data bredvid programmet, utan i någon lämplig data katalog. (sen kan också nämnas att Vista kommer att bråka med dej om du försöker spara stuff under "Program Files" ...)


Svara

Sv:Ta reda på filens 'path'

Postades av 2007-03-28 00:45:06 - Fredrik Boström

Kämpade länge med att ta reda på varför ena fopen bråkade med mig och det visade sig att på grund av att jag inte hade någon genväg utan bara "Fil.txt" så sparade programmet bara information i ena text-filen och gjorde inget med den andra. När jag sedan manuellt la in C:\Fil.txt så fungerade båda och detta krävs ju något mer automatiserat.


Svara

Sv: Ta reda på filens 'path'

Postades av 2007-03-30 13:29:41 - Johan Forsberg

argv[0] är ju sökvägen (inklusive programnamnet). Använder du WinMain så antar jag att lpszArgument kanske är något. Men, fopen fungerar så (vilket de flesta implmenterade filoperationsfunktioner gör) att den letar i den lokala mappen först och sedan i systemmapparna (typ system32, windows), den kollar i path också antar jag. Om inget av det fungerar så kanske GetModuleFileNameEx funkar...


Svara

Sv:Ta reda på filens 'path'

Postades av 2007-03-31 21:03:38 - Fredrik Boström

Tackar! Det fungerar nu i alla fall men frågan är hur "bra" gjort det är. Bör det göras på något lättare sätt kanske? Här är bifogad kod i vilket fall:

GetModuleFileName( NULL, szFilePath, sizeof(szFilePath) );
std::string sFilePath;
sFilePath = szFilePath;
int nRet = sFilePath.find_last_of('\\');
szFilePath[nRet+1] = '\0';


Svara

Sv: Ta reda på filens 'path'

Postades av 2007-04-01 10:18:54 - Niklas Jansson

argv är vad jag kan minnas systemspecifik huruvida man ger hela sökvägen, bara filnamnet, eventuella länkar etc., och är även fri att lämnas tom (det är jag säker på) om man inte kan ge ett namn. Alltså en generellt osäker metod. Ska programmet bara användas på windowsdatorer så funkar GetModuleFileName.

För det första bör du egentligen inte ta reda på pathen, utan alltid spara filer med sitt namn, då ska de hamna rätt; det som krävs är att du har rätt working directory. Om inte så bör lösningen vara att använda "Application data" på Windows.

Oavsett, lösningen är lite märklig. Du vill väl alltid använda std::string snarare än fula char * ?
Då kan du köra med något i stil med

GetModuleFileName( NULL, FilePathTemp, sizeof(FilePathTemp) );
std::string FilePath = std::string(FilePathTemp).substr(std::string(FilePathTemp).find_last_of('\\'));


Eventuellt någon uppsnyggning med en temporär variabel.

Sen råder jag dig att skippa ungersk notation. Utdaterat, fult och utan nytta.


Svara

Nyligen

  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 869
27 965
271 770
640
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies