わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。

指定したコンピュータの共有フォルダパスの取得

共有フォルダパスの取得には、NetShareEnum()関数を使用します。第二引数に502を指定する事で、共有フォルダのパスを取得できます。

#include <tchar.h>
#include <iostream>
#include <windows.h>
#include <lm.h>



// lib
#pragma comment( lib, "Netapi32.lib" )



/*
	指定したコンピュータの共有フォルダパスの取得
*/
int _tmain
(
	  int argc
	, _TCHAR* argv[]
)
{
	// 標準出力にユニコードを表示できるようにする
	setlocale( LC_ALL, "Japanese" );

	// 共有フォルダのパスを列挙したいコンピュータ名
	std::wstring strComputername = L"COMPUTER-NAME";


	/*
		共有名と、共有パスの列挙
	*/
	{
		SHARE_INFO_502* pBuffer = NULL;
		DWORD dwEntryCount   = 0;
		DWORD dwTotalEntries = 0;

		// 共有フォルダの列挙
		NET_API_STATUS resNetApiStatus = ::NetShareEnum(
				  (LPWSTR)strComputername.c_str()
				, 502
				, (LPBYTE*)&pBuffer
				, MAX_PREFERRED_LENGTH
				, &dwEntryCount
				, &dwTotalEntries
				, NULL
			);

		SHARE_INFO_502* pShareInfo = (SHARE_INFO_502*)pBuffer;

		// 共有フォルダ名称とパスの表示
		for ( DWORD nI = 0; nI < dwEntryCount; nI++, pShareInfo++ ) {
			std::wcout << pShareInfo->shi502_netname << L" => "<< pShareInfo->shi502_path << std::endl;
		}

		// バッファの解放
		if ( NULL != pBuffer ) {
			::NetApiBufferFree( pBuffer );
		}
	}

	return 0;
}



#if 0
#endif



実行結果

ADMIN$ => C:\WINDOWS
C$ => C:\
share => C:\test\share
テスト => C:\test\test






わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。