私は実際にプロジェクトに取り組んでいます。ディレクトリを参照する必要があります。このためには、使用したくないのでdirent.hライブラリを使用しています。そのためだけにブースト。
したがって、私はこの記事<dirent.h> in visual studio 2010 or 2008を見つけました。http://www.softagalleria.net/dirent.phpここでdirent.hをダウンロードしてインストールしました。
dirent.hがインストールされていて、opendir、readdirのような基本的な機能を使用しても問題はありませんが、seekdir()関数を使用したいときはライブラリに存在しないと思われますので、私の仮説と(感謝のCtrl + F)seekdirは実際に行方不明です。
私は何かが恋しくなるか、この機能を得るためのトリックを見つけなければなりませんか?
ありがとうございます。dirent.hでseekdir()を見つけることができませんWindows(C++)
答えて
そのヘッダーで利用可能な唯一の機能は以下のとおりです。
DIR *opendir (const char *dirname);
struct dirent *readdir (DIR *dirp);
int closedir (DIR *dirp);
void rewinddir (DIR* dirp);
必要な機能を得るために何のトリックはありません。あなたは単にこれのために別のライブラリを見つける必要があります。
あなたはヘッダファイルdirent.h
を見つけカント場合は、代替としてWIN32_FIND_DATA
、FindFirstFile()
とFindNextFile()
を使用してみてください。 2つの異なるコードが提出されます。 1つはVisual Studio 6.o用で、もう1つはVisual Studio 2013用で、ワイド文字を使用する必要があります。 Visual Studio 6.0のための
コード:Visual Studioの2013年
#include <windows.h>
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
void listdirandfiles(string dir){
HANDLE hFind;
WIN32_FIND_DATAA data;
hFind = FindFirstFileA(dir.c_str(), &data);
if (hFind != INVALID_HANDLE_VALUE) {
do {
printf("%s\n", data.cFileName);
} while (FindNextFile(hFind, &data));
FindClose(hFind);
}
}
int main(int argc, char** argv){
string dir = "c:\\*.*";
cout<<"\nListing directories or files..\n\n";
listdirandfiles(dir);
cout<<"\nPress ANY key to close.\n\n";
cin.ignore(); cin.get();
return 0;
}
コード:
// visual studio 2013
// listdirConsoleApplication15.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
wchar_t *convertCharArrayToLPCWSTR(const char* charArray)
{
wchar_t* wString = new wchar_t[4096];
MultiByteToWideChar(CP_ACP, 0, charArray, -1, wString, 4096);
return wString;
}
void listdirandfiles(char *wstr){
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
hFind = FindFirstFile(convertCharArrayToLPCWSTR(wstr), &FindFileData);
do{
_tprintf(TEXT("%s\n"), FindFileData.cFileName);
} while (FindNextFile(hFind, &FindFileData));
FindClose(hFind);
}
int main()
{
char *wstr = "c:\\*.*";
cout << "\nListing directories or files..\n\n";
listdirandfiles(wstr);
cout << "\nPress ANY key to close.\n\n";
cin.ignore(); cin.get();
return 0;
}
WRT "ワイド文字[、]"を使用する必要があります。Windowsでは、ワイド文字の場合は「W」、ANSIの場合は「A」接尾辞付きの2つの関数が用意されています。与えられた関数は 'W'バージョンを指すように定義されます。例えば。 'FindFirstFile'は' FindFirstFileW'に定義されています。 'FindFirstFileA'は直接またはどこかで呼び出すことができ、 'W'から 'A'にグローバルにリダイレクトするコンパイラオプションがあります。しかし、私がオプションを覚えていれば幸いです。 – user4581301
- 1. はWindowsコマンドレットを見つけることができません
- 2. C++はSQLite3を見つけることができません
- 3. OpenTK.Audio.OpenALを見つけることができませんC#チュートリアル
- 4. CMakesはWindows上でブーストを見つけることができません
- 5. Windows 7でIISサービスを見つけることができません
- 6. Windows上でsyslog.hを見つけることができません
- 7. Windowsのclangがヘッダーを見つけることができません
- 8. CakeがBoostライブラリを見つけることができません(Windows)
- 9. DDE - Windowsがパスを見つけることができません
- 10. Doctrineがドライバを見つけることができませんpdo_sqlsrv [windows]
- 11. Windows 10のPython:os.rename()はos.path.exists()が見つけたファイルを見つけることができません。
- 12. python subprocess.call()はWindows Bash.exeを見つけることができません
- 13. protocはWindows 7のファイルを見つけることができません
- 14. Windows Azure ACS:アセンブリ 'Microsoft.IdentityModel'を見つけることができません
- 15. シンプルなバットファイル、Windowsは 'nameofthefile'を見つけることができません
- 16. このCプログラムのバグを見つけることができません
- 17. PHPでアルゴリズムを見つけることができません
- 18. PHPでファイルを見つけることができません。
- 19. stringWithFormatでエラーを見つけることができません
- 20. Unixで$ Promptを見つけることができません
- 21. hrefでオブジェクトを見つけることができません。
- 22. QWebViewでテキストコンテンツを見つけることができません
- 23. エンティティフレームワークでChangeTrackerを見つけることができません
- 24. MACでMACを見つけることができません
- 25. BeautifulSoupでチェーンを見つけることができません。
- 26. Macでpythonを見つけることができません
- 27. IDでユーザーを見つけることができません
- 28. タグでフラグメントを見つけることができません
- 29. nodejsサーバで@を見つけることができません
- 30. Firebaseでデータを見つけることができません
あなたは* *ヘッダファイルの違い*と*ライブラリを勉強したいです。ヘッダーをダウンロードするだけでは不十分です。 – tofro
もう少し説明できますか?私は小さなチュートリアルに従っていると私はdirent.hから関数を使用することができ、それらの関数は実際に動作します:/ – Freddykong
それはヘッダーのみのライブラリなので、.hファイルが必要です。 'seekdir'は単に作者によって実装されていないようです。 – Ari0nhh