Я случайно совершил большую ошибку:
В моей программе C++ я сделал:
std::string oldFilePath = "/Users/blah/somepath/foo.xml";
std::string newFileName = "foo.xml" //Blunder! Forgot to prefix the new path!
int status = rename(oldFilePath.c_str(), newFileName.c_str());
Я забыл префикс нового пути и просто поместил имя файла (без пути) для нового имени, в которое должен быть переименован файл. В результате файл исчез со старого пути, и я не знаю, куда его ушло!
Где находится файл? Есть ли способ восстановить его? (Time Machine отключена для этой папки, поэтому я не могу этого сделать!)
EDIT: Где будет скомпилированный файл, созданный Xcode для приложения C++?
EDIT: Если вы запускаете программу через xcode, она должна быть в:
~/Library/Developer/Xcode/DerivedData//Build/Products/Debug/
Не забывайте ~ в указанном выше пути!
Если операция выполнена успешно (status == 0
), файл будет находиться в текущем каталоге процесса при его запуске. Трудно предсказать, где это может быть, но $HOME
- один правдоподобный кандидат (возможно, /Users/blah/foo.xml
). Вы должны найти его либо с помощью команды find
либо с помощью Spotlight.
Я не использую интерфейс XCode (или другие IDE), отчасти потому, что мне не нравится отсутствие контроля над такими вещами, как "где программа ставится" и "какой текущий каталог при запуске программы" ( и для остальных, потому что я динозавр). AFAIK, исполняемый файл должен находиться в каталоге под папкой, в которой вы создали проект. Опять же, Spotlight или find
должны быть в состоянии помочь вам, по крайней мере, если вы выбрали своеобразное имя для программы. Каталог проекта - это еще одно место для поиска файла foo.xml
.