working directory constantly changing?

Started by
11 comments, last by billybob 20 years, 3 months ago
I have been having serious trouble with file management throughout all the time working on my game. what seems to be happening is files are loaded/saved into a directory, then all files attempting to use relative directories use that has their working directory. for example, I open/save my Config.ini file without any directory information. because of this, my ini file gets deposited anywhere a file has been opened/saved last. surely, there is a way to prevent the working directory from changing like this?
Advertisement
er, how are you opening and closing files?
I use std::fstream/ifstream/ofstream, usually I just let it go out of scope, but there are a few places where I .close it. I don't do anything strange with opening or closing files, and I've checked the filenames EVERY SINGLE open call makes with my log, all seem perfectly fine.

[edited by - billybob on January 22, 2004 9:57:50 PM]
use the full path when you save your files.
--- krez ([email="krez_AT_optonline_DOT_net"]krez_AT_optonline_DOT_net[/email])
Then it will only work if its extracted to one specific directory.
// set current directory to exe's rootwchar_t applicationDir[MAX_PATH];::GetModuleFileName(instance, applicationDir, MAX_PATH);wchar_t* endPath = wcsrchr(applicationDir, L'\\');if(endPath)	*endPath = 0;::SetCurrentDirectory(applicationDir); 



[edited by - antareus on January 22, 2004 10:28:26 PM]
--God has paid us the intolerable compliment of loving us, in the deepest, most tragic, most inexorable sense.- C.S. Lewis
I already do that antareus, but in order to fix my problem I''d have to do that every time I open a file (the SetCurrentDirectory part, at least)
Can''t you just operate off of relative paths when you know you''re in the application''s directory?
--God has paid us the intolerable compliment of loving us, in the deepest, most tragic, most inexorable sense.- C.S. Lewis
I don''t understand what you mean. first of all, how would you know, second, what would I do when I''m NOT in the application''s directory (as it seems to be after I open a file that isn''t in there)
use all but the last line of antareus'' sample code, and save it in a char array somewhere. then, when you want to open a file, copy this saved path before the filename. you can even write an inline function to do it.
--- krez ([email="krez_AT_optonline_DOT_net"]krez_AT_optonline_DOT_net[/email])

This topic is closed to new replies.

Advertisement