2014-10-02 30 views
1

從Finder運行OSX應用程序與Xcode的區別?從Finder運行OSX應用程序與Xcode的區別?

系統是iMac的27」 全-1運行小牛OSX 10.9.5和最新的Xcode 6.0.1

應用程序讀取二進制文件,並把兩個文本文件,可以重新寫的二進制文件,並繪製一個 窗口客戶區。

應用程序完全在Xcode中運行。 App,二進制文件和兩個文本文件位於〜/ Debug或〜/ Release目錄中。 寫入文件沒有問題。文件I/O代碼做這個...

std::fstream out( binary_file, std::ios::in|std::ios::binary); 
if (out) 
out.read(buffer, MaxBuffer); 
out.close(); 

ofstream info(「info_file.txt」); 
if (info.is_open()) 
info << text; 
info.close(); 
system("chmod 777 info_file.txt"); //tried this, doesn’t help 

ofstream clout(「clout_file.txt」); 
if (clout.is_open()) 
clout << text; 
clout.close(); 
system("chmod 777 clout_file.txt"); //tried this, doesn’t help 

當從Finder中運行(雙次點擊)應用程序不能寫入文件。無論在哪裏,應用程序和文件都位於...

/用戶/ MYNAME /應用程序/應用程序的名字

/用戶/ MYNAME /庫/ Application Support /應用程序的名字

其他

我應該說在App是在Xcode中構建的存檔/發佈,並放置在目標目錄中以查找 Finder情況。這是正確的方式嗎?這是我的第一個OSX應用程序,但我一直編程爲 數十年。

權限用於取景的情況是

應用:MYNAME閱讀&寫,員工只讀,大家只讀 二進制文件:MYNAME閱讀&寫,工作人員讀&寫,大家讀&寫 文本文件:MYNAME閱讀&寫,工作人員閱讀&寫,大家都讀&寫

我已經檢查了Unix終端的目錄樹中的所有權限也。 /Users/myname/...

Xcode與Finder有什麼區別?關於...

用戶名(綽號)

組名(工作人員,根,管理員)在啓動時

工作目錄上的應用程序和文件(讀,寫,執行)

權限應用程序的

位置和文件

會爲文件寫入工作的/ tmp位置?

哪裏可以放置應用程序和文件的最佳位置?

應用程序工作目錄被App更改爲App和文件所在的位置。 Xcode - > Product - > Scheme - > Edit Scheme - > Options - > Working Directory設置爲相同的位置。 這並不能幫助Finder運行情況。

此應用程序的MS Windows版本正常工作。 我已經移植它,重新編寫它,適用於iMac OSX環境,並且它在Xcode中運行良好。 Finder案件有什麼問題?爲什麼不能在輸出模式下打開文件?

我正在考慮以objective-c風格重寫文件I/O,但這將是一個痛苦,不應該是 必要的。 CString與NSString對我來說是一個很大的痛苦。我不得不使用.mm和 objective-C++源類型來實現這一目標。

想法歡迎和感謝。

+0

您應該將工作目錄設置爲啓動時合理的地方,而不是依賴工作目錄在啓動時發生的任何事情(通常是從Finder啓動時的'/')。要麼是或者爲你的文件使用完整路徑。 – 2014-10-02 12:51:26

+0

可能的重複[應用程序不會寫入文件從Finder運行(在Xcode中確定)](http://stackoverflow.com/questions/26149445/app-wont-write-to-file-when-run-from -finder-ok-in-xcode) – 2014-10-02 12:51:46

+0

應用程序工作目錄由App更改爲App和文件所在的位置。 – robrob 2014-10-02 12:55:42

回答

1

完整路徑名稱解決了從Finder運行的所有問題。多個目錄位置嘗試成功。非常感謝Paul R.

+0

這是你的意思,例如'ofstream clout(「〜/ out/clout_file.txt」);'? – GPMueller 2017-01-14 12:47:45

相關問題