私はDelphiプログラムからWindows 7のマップされたネットワークドライブ(P :)に書き込む際にいくつか問題があります。例えば、ForceDirectories('P:\test\folder')
を試してみると、エラー(パスが見つかりません)が表示されます。私のプログラムがマップされたUNCパスを認識しないのはなぜですか?
コード(ForceDirectories('\\computername\share\test\folder')
)でUNCパスに入力しようとしましたが、それが動作します。しかし、ExpandUNCFileName('P:\')
は動作していないようです。 'P:\'を返します。 Windows XPでは、ExpandUNCFileName('P:\')
がUNCパスを返します。
Windows 7のDelphiでUNCパスを取得する方法、またはマップされたネットワークドライブに書き込む方法はありますか。
さらに調査すると、Windowsで何らかの初期設定が行われていないようです。私はTcxShellComboBox
(DevExpressコンポーネント)を使用する別のアプリケーション(app2)を持っています。そのコンボボックスでP:にナビゲートした後、app2でExpandUNCFileName
の呼び出しが最初のアプリケーションで正しく機能します。 P:の下にあるファイルのFileExists
と同じですが、app2のP:にナビゲートする前にFalseを返し、コンピュータの再起動後までtrueを返します。
これは万一のサービスですか?あなたが記述する振る舞いは、Delphiとは何の関係もなく、ドライブマッピングがプロセス用に設定されていないために発生します。 –
ドライブ文字が共有にマップされていることを確認します。ドライブ文字がマップされていない場合にのみ問題を再現できました(Delphi 7、2007 XE)。 – crefird
サービスではなく、VCLフォームアプリケーションです。 – MGH