我已經用C++編寫了一個程序,它檢查文本有多少個單詞。 文本存儲在與.exe文件相同的目錄中的.txt文件中。我想知道是否有辦法讓我的.txt文件的名稱不相關,只要.txt文件與我的.exe文件位於同一目錄中?我希望能夠更改.txt文件的名稱,並仍能夠成功運行我的程序,而不會收到「錯誤打開文件」消息。從具有未指定名稱但具有已知目錄的.txt文件讀取C++
-2
A
回答
0
您需要枚舉應用文件夾中的文件,直到找到一個文件擴展名爲.txt
的文件。
但是,標準C++庫沒有任何內容可以處理這個問題。
你需要使用特定平臺的API ,以確定您的應用程序運行的文件夾,然後就可以使用特定平臺的API ,或第三方的跨平臺API 枚舉該文件夾中的文件。
一旦你發現文件,只有這樣你才能打開它。
:(如解析的GetModuleFileName()
Windows上的結果)
:(在Windows上像FindFirstFile()
和FindNextFile()
)
:(像boost::filesystem
)
+0
C++ 17 [文件系統庫](http://en.cppreference.com/w/cpp/filesystem)幾乎與'boost :: filesystem'類似,所以值得一提。 –
+1
@MilesBudnek:雖然這是一段時間了。考慮到許多人還沒有使用C++ 11,他們很可能不會馬上跳到C++ 17。 –
相關問題
- 1. 添加具有指定名稱的所有目錄的內容
- 2. Gulp.js - 輸出具有可變目錄名稱但具有固定文件名的文件
- 3. 從具有未知中間目錄的目錄中獲取文件,使用python
- 4. 從目錄中讀取所有文件(具有不同的cwd)
- 5. 在文件夾中搜索具有已知擴展名的未知文件名
- 6. mod_rewrite具有未知數量的目錄
- 7. 如何獲取包含具有特定名稱的文件的給定目錄內的所有目錄
- 8. 電子表格到具有指定名稱的多個txt文件
- 9. SSIS - 在已知目錄中刪除未知名稱文件夾
- 10. 從具有固定的文件中讀取長記錄
- 11. C++如何在具有特定名稱的目錄中搜索文件?
- 12. 從目錄中讀取未知的文件名
- 13. 如何獲取具有已知資源名稱的資源ID?
- 14. C:讀取目錄中的所有* .txt文件
- 15. 的Python檢查所有文件具有特定名稱的目錄
- 16. 使rsync排除包含具有特定名稱的文件的所有目錄
- 17. 獲取具有給定名稱的所有文件夾
- 18. 獲得具有在其目錄名稱
- 19. 獲取具有指定擴展名的所有文件node.js
- 20. 在每行中讀取具有字段名稱的CSV文件?
- 21. 讀取輸入和移動具有相似名稱的文件
- 22. 具有指定標識或名稱的資源已存在 - Dcoumentdb
- 23. node.js目錄搜索具有名稱的文件
- 24. 找到目錄中具有相同名稱的文件
- 25. 運行在具有指定名稱
- 26. 已存在具有相同名稱的SVN未受版本控制的目錄
- 27. 在R中讀取多個文件分配在不同的目錄中,但具有相同的名稱
- 28. Visual Studio:創建具有指定名稱的文件夾
- 29. 查找具有指定名稱的Windows子文件夾
- 30. 打開2個具有相同名稱但目錄不同的文件
你有兩個問題:首先是沒有*標準*的方法來列出C++中的目錄內容([至少還沒有](http://en.cppreference.com/w/cpp/filesystem))。你必須使用操作系統功能。第二個問題是你的目錄並不是真正知道的。 [有可能操作系統特定的功能,以及雖然](http://stackoverflow.com/questions/1528298/get-path-of-executable)。 –
@DimChtz:沒有用於獲取調用進程的可執行路徑的標準API(除非您計算'argv [0]',但只適用於控制檯應用程序,並且可能存在)。 –
當該目錄中有兩個或更多文本文件時會發生什麼?也許你應該要求文件名在命令行上傳遞。 –