2

私は面白い状況にあります。「My_Folder」などの共有フォルダがあるコンピュータに座っています。したがって、アドレス「\ My_Box\My_Folder」を使用してアクセスできます。

これで、C#で小さなツールを作成すると、「\ My_Box \ My_Folder」をその物理的な場所である「C:\My_Folder」に変換できます。

面白いのは、プログラムなしで「My_Box \ My_Folder」の物理的な場所を見つける方法がわからないことです...そして、それは実際には私の友人の問題の1つです。

したがって、いくつかの簡単な基本的なWindowsコマンド/操作(Winxp、2000、vista、7、...のいずれか)を使用してネットワークパスからローカルパスを見つける方法を知っている人がいる場合は、私に知らせてください。

ありがとう、ピート。

4

1 に答える 1

2

この情報を提供するコマンドラインツールだけが必要な場合は、net shareWindowsに組み込まれているコマンドを使用するだけです。

プログラムで実行する必要がある場合は、NetShareGetInfo関数を使用できます。\\localhost\share次の例は、C++でパスを照会するためにそれを使用する方法を示しています。

#include <windows.h>
#include <lm.h>
#pragma comment (lib, "netapi32.lib")

#include <iostream>
using namespace std;

int main()
{
    BYTE * buffer = nullptr;

    auto error = NetShareGetInfo(nullptr, // local computer
                                 L"share",
                                 2, // level
                                 &buffer);

    if (ERROR_SUCCESS == error)
    {
        auto info = reinterpret_cast<SHARE_INFO_2 *>(buffer);

        wcout << info->shi2_path << endl;
    }

    if (buffer)
    {
        NetApiBufferFree(buffer);
    }
}

バッファをクラスにラップし、NetApiBufferFreeそのデストラクタから呼び出しますが、それはあなた次第です。

于 2010-11-23T15:41:29.580 に答える