Qtでネットワーク上の共有フォルダにあるテキストファイルの内容を取り出したい

Qtでアプリケーションを作成しています。
その中で、ネットワーク上にある共有フォルダにアクセスし、フォルダ内にあるテキストファイルを読み込みたいです。

以下のコードで実行したのですが、共有フォルダに接続はできているようなのですが、ファイルは読み込めませんでした。

C++

1void FileRead::fnFileRead() 2{3 std::wstring strShareFolderPath = L"//192.168.0.5";4 std::wstring strUserName = L"Admin";5 std::wstring strPassword = L"admin";6 7 NETRESOURCEW tNetResource;8 ZeroMemory( &tNetResource, sizeof( tNetResource ) );9 tNetResource.dwType = RESOURCETYPE_ANY;10 tNetResource.lpRemoteName = (LPWSTR)strShareFolderPath.c_str();11 12 // 共有フォルダへ接続 13 DWORD dwResult = WNetAddConnection2W( &tNetResource, strUserName.c_str(), strPassword.c_str(), 0 );14 if ( NO_ERROR == dwResult ) {15 qDebug() << "OK ACCESS";16 17 QString qstrTextFile = "//192.168.0.5/d/test.txt";18 fopen_s(&fp, qstrTextFile.toLocal8Bit(), "r");19 20 if(fp == NULL){21 qDebug() << "NO FILE";22 }23 else {24 qDebug() << "LOOK FILE";25 }26 27 }28 else {29 qDebug() << "NO ACCESS";30 }31}

エクスプローラーから「\\192.168.0.5」にアクセスすると正常にフォルダとファイルを見ることができます。
また、エクスプローラーからアクセス可能な状態にしてからfopen_sを行うと、正常にファイルを読み込むことができました。
他にいろいろ試したのですが、WNetAddConnection2Wの動作がどうもおかしい(?)ようで、
共有フォルダのパスをデタラメな値にしたり、ユーザー名とパスワードを空白にしても「OK ACCESS」と出ます。

エクスプローラーから接続操作せずにプログラム上で全て完結させたいです。
上記以外の方法でもよいので、プログラムから共有フォルダにアクセスし中のファイルを読み込む方法はありませんか?

コメントを投稿

0 コメント