读书人

怎么取得共享文件夹的本地路径

发布时间: 2012-03-03 15:33:03 作者: rapoo

如何取得共享文件夹的本地路径
比如,c:\tmp文件夹,被共享为Share1;如何根据“Share1”,获取它的本地路径值“c:\tmp”。
只需取本机的共享即可,就像“我的电脑/管理/共享文件夹”中列举的一样。

我现在通过WNetOpenEnum,能够正常取得lpRemoteName,但是lpLocalName始终为nil。


[解决办法]

Delphi(Pascal) code
unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls; type     PShare_Info_2  =  ^TSHARE_INFO_2;     TSHARE_INFO_2  =  record     shi2_netname:  PWideChar;     shi2_type:  DWORD;     shi2_remark:  PWideChar;     shi2_permissions:  DWORD;     shi2_max_uses:  DWORD;     shi2_current_uses:  DWORD;     shi2_path:  PWideChar;     shi2_passwd:  PWideChar; End; type  TForm1 = class(TForm)    Button1: TButton;    procedure Button1Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm} function NetShareGetInfo(ServerName : PWideChar; NetName : PWideChar; ShareLevel : DWORD;var Buffer : Pointer) : Integer;stdcall;external 'netapi32.dll';procedure TForm1.Button1Click(Sender: TObject);var       ShInfo: PShare_Info_2;      lError:  DWord;      shareName:PWideChar;      shareNames:PWideChar;  begin     new(ShInfo);     shareName:='test';    shareNames:=shareName;    lError :=NetSharegetInfo(nil,shareNames,2,Pointer(ShInfo));    showmessage(inttostr(lError));    showmessage(WideCharToString(ShInfo.shi2_path));  end; end. 

读书人网 >.NET

热点推荐