如何得到一个浏览器中选定的文件的完整路径?(100分)

  • 主题发起人 主题发起人 chenziyi
  • 开始时间 开始时间
C

chenziyi

Unregistered / Unconfirmed
GUEST, unregistred user!
我用一个浏览器控件来显示文件夹和文件,就像资源管理器的右边一样。
但是,现在有个问题,当我在浏览器里选中一个文件时,用什么方法可以得到这个文件
德完整路径?
 
在onStatusTextChange事件里
procedure TForm1.WebBrowser1StatusTextChange(Sender: TObject;
const Text: WideString);
begin
caption:=Text;
end;
 
To wolfsong:
这个方法我试过,不行。这样得到的是文件的大小。
 
不,就是链接的路径,你再试试
 
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('f:/test')
//f:/test 是一个文件夹
end;

procedure TForm1.WebBrowser1StatusTextChange(Sender: TObject;
const Text: WideString);
begin
edit1.text:=text;
end;
我已经驶过,但是不行。
 
请问你用过shelllistview控件吗?
那里可以找到这个控件?
 
是Delphi6中的控件吧。
 
你换控件吧,
你的delphi安装路径/Demos/Virtual Listview看合不合你要求
 
我的email: chenziyi@263.net
 
谢谢chemer and woflsong
 
To wolfsong:
我看了一下visual listview的例子,很好。
但是,如何取得选中文件的路径,例子上没有。
能不能告诉我实现的方法?
 
不可能,你再看看:
从demo里摘出来的:
procedure TForm1.SetPath(ID: PItemIDList);
var
Index: Integer;
NewShellFolder: IShellFolder;
begin
OLECheck(
FIDesktopFolder.BindToObject(
ID,
nil,
IID_IShellFolder,
Pointer(NewShellFolder))
);

ListView.Items.BeginUpdate;
ListView1.Items.BeginUpdate;
try
PopulateIDList(NewShellFolder);
FPIDL := ID;
FPath := GetDisplayName(FIDesktopFolder, FPIDL, True);
Index := cbPath.Items.IndexOf(FPath);
//你可以从这里
if (Index < 0) then
begin
cbPath.Items.InsertObject(0, FPath, Pointer(FPIDL));
cbPath.Text := cbPath.Items[0];
end
else begin
cbPath.ItemIndex := Index;
cbPath.Text := cbPath.Items[cbPath.ItemIndex];
end;
//到这里注释掉看看
if ListView.Items.Count > 0 then
begin
ListView.Selected := ListView.Items[0];
ListView.Selected.Focused := True;
ListView.Selected.MakeVisible(False);
end;
finally
ListView.Items.EndUpdate;
ListView1.Items.EndUpdate;
end;
end;
我还是想你自己找,原因么 我不说了[:D]
 
我已经找到解决的方法。谢谢。
 
接受答案了.
 
to wolfsong:
我还是有一个问题,
如何取出文件名?(路径似乎比较容易)。
因为时间比较急,请给出答案。
 
后退
顶部