如何取得共享文件夹的本地路径
比如,c:\tmp文件夹,被共享为Share1;如何根据“Share1”,获取它的本地路径值“c:\tmp”。
只需取本机的共享即可,就像“我的电脑/管理/共享文件夹”中列举的一样。
我现在通过WNetOpenEnum,能够正常取得lpRemoteName,但是lpLocalName始终为nil。
[解决办法]
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.