更改Delphi OpenDialog的目录+;Win7中的驱动器

更改Delphi OpenDialog的目录+;Win7中的驱动器,delphi,Delphi,在Win7上,当新目录位于与当前目录不同的驱动器上时,更改TOpenDialog.InitialDir似乎不起作用 e、 g:我想将我的InitialDir从'C:\program files\MyApp'更改为'D:\test\MyAppData' 这是已知问题,还是仅在我的计算机上 我已经尝试过同样的事情,正如在下面的帖子中提到的,但没有成功: 编辑: 我在Win32位上使用DelphiXE 路径/dir是正确的:因此,当我从代码中复制该路径并将其复制到对话框本身的“文件名”字段中,然后按

在Win7上,当新目录位于与当前目录不同的驱动器上时,更改
TOpenDialog.InitialDir
似乎不起作用

e、 g:我想将我的
InitialDir
'C:\program files\MyApp'更改为'D:\test\MyAppData'

这是已知问题,还是仅在我的计算机上

我已经尝试过同样的事情,正如在下面的帖子中提到的,但没有成功:

编辑: 我在Win32位上使用DelphiXE

路径/dir是正确的:因此,当我从代码中复制该路径并将其复制到对话框本身的“文件名”字段中,然后按ENTER键时,对话框切换到该目录。只是,在我的代码中,它不起作用

更新:

我发现了问题。如果路径包含一些路径命令,如
。\
TOpenDialog.InitialDir
无法解决该问题。使用
TPath.GetFullPath(…)
将其清理干净。

通过对象检查器或运行时(使用Delphi 2010的Win7)更改
InitialDir
,我没有任何问题。尝试双重检查您尝试更改的目录是否键入正确。

我在Delphi XE上进行了测试,它运行正常。。。我已经这样做了:

换一个新的表格:

object Form4: TForm4
  Left = 0
  Top = 0
  Caption = 'Form4'
  ClientHeight = 204
  ClientWidth = 447
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Button1: TButton
    Left = 24
    Top = 40
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 0
    OnClick = Button1Click
  end
  object Edit1: TEdit
    Left = 120
    Top = 42
    Width = 121
    Height = 21
    TabOrder = 1
    Text = 'D:\'
  end
  object OpenDialog1: TOpenDialog
    InitialDir = 'C:\'
    Left = 120
    Top = 72
  end
end
及其源代码:

unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm4 = class(TForm)
    OpenDialog1: TOpenDialog;
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4;

implementation

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);
begin

  OpenDialog1.InitialDir := edit1.text;
  OpenDialog1.Execute;
end;

end.

关于

OP特别要求将初始目录设置为不同的驱动器,DFM显示您正在请求'C:`Hi@Cosmin Prund。。。。对不起,我不明白。。我已经用
DFM initialDir
测试了
C:\
,但是当执行
按钮1单击时,我已经测试了将
edit1.text
设置为
D:\和\u文件夹
,反之亦然。所有运行正常。我的意思是,您可以替换为
OpenDialog1.InitialDir:=edit1.text
OpenDialog1.InitialDir:=“D:\my\u folder”
一起使用,一切正常。我用3个磁盘和不同的文件夹对它进行了测试,因为有一个
edit1
而不是一个常量字符串。:-)很抱歉,我按按钮错过了作业+1.