當我打開文件的下一個方法: ofstream outputFile(Filename,ios :: out | ios :: binary);我想在目錄不存在時強制文件打開
我得到錯誤的結果,當不存在的目錄:
TEMP \ FILENAME.EXT
當目錄中存在它的工作以及。 我想知道我怎麼能強迫在C++中命令
當我打開文件的下一個方法: ofstream outputFile(Filename,ios :: out | ios :: binary);我想在目錄不存在時強制文件打開
我得到錯誤的結果,當不存在的目錄:
TEMP \ FILENAME.EXT
當目錄中存在它的工作以及。 我想知道我怎麼能強迫在C++中命令
我是第一個承認我什麼都不知道關於C的操作,但在任何編程語言,試圖迫使在不一個文件打開的文件操作存在是一件壞事!
檢查您試圖打開的文件是否存在。如果沒有,請創建它。如果你不能創建它,那麼優雅地失敗。
這不是文件存在與否的問題。創建文件時,這是一個不存在目錄的問題。 –
事實上,您通常不會找到僅創建文件的C或C++函數(或其他大多數語言的函數)。你打開它們;如果你打開一個不存在的文件進行閱讀,這是一個錯誤。如果您打開一個不存在的_writing_文件,它將被創建。這就是你創建文件的方式。 –
你不能。沒有標準的方法來在C++中創建一個目錄。
你可能想看看從提升filesystem library。有多種功能用於檢查目錄/文件是否退出,以及是否如何創建它們。
創建ofstream
時會自動創建文件(如果不存在)。但是你想要創建這個文件的目錄必須已經存在。
無法在C++中自動創建目錄。你必須用C++創建目錄。
此外,不幸的是,沒有處理目錄的C++標準方式。您必須恢復到您的操作系統的C系統庫mkdir
才能創建它。
mkdir是linux文件系統應用程序。我需要用於Linux和Windows的C++或c函數。因爲您瞭解我的應用程序是跨平臺應用程序 – ifefer
在Windows上,Visual C++的C運行時提供了函數'_mkdir'。界面很簡單。與使用全功能庫相比,根據平臺使用'mkdir'和'_mkdir'宏開關是輕量級的。 –
你如何打開一個不存在的文件?你的代碼應該在試圖打開它之前檢查文件是否存在,如果不存在,它應該嘗試創建它,如果需要的話。 – AndrewC
什麼語言? C還是C++? – Kos