3

App.config:

<add key="SaveDraftPath" value="C:\Drafts\"/>

C#:

var saveDraftPath = ConfigurationManager.AppSettings["SaveDraftPath"]; 
var sfDialog = new SaveFileDialog();
sfDialog.InitialDirectory = saveDraftPath;
sfDialog.FileName = "FILE";

なんらかの理由で、これは計画どおりにパスでファイルブラウザを開きません.理由や修正方法を知っている人はいますか?

私は今これを試しましたが、まだ動作しません:

var saveDraftPath = Path.GetFullPath(ConfigurationManager.AppSettings["SaveDraftPath"]);
MessageBox.Show("does directory exist : " + Directory.Exists(saveDraftPath));
var sfDialog = new SaveFileDialog();
sfDialog.InitialDirectory = saveDraftPath;
sfDialog.FileName = "FILE";

Directory.Exists(saveDraftPath) は true を返します.. うーん?!

編集:上記のコードは、私にとっては一度だけ機能しました。コードは、これまでに回答したすべての人に有効です。しかし、それはまだ機能していません。したがって、問題はある種のローカル/履歴設定がそれを停止していると思われます。なぜこれが起こるのか誰にも分かりますか?

4

2 に答える 2

1

これを試して:

var path = Path.GetFullPath(ConfigurationManager.AppSettings ["SaveDraftPath"])

パスクラスも見てください。いくつかの便利なメソッドがあります

于 2010-02-16T00:54:06.643 に答える
0

これは私のために働いた(設定から正しいパスを取得する)

var saveDraftPath =
           ConfigurationManager.AppSettings["SaveDraftPath"];
        var sfDialog = new SaveFileDialog();
        sfDialog.InitialDirectory = saveDraftPath;
        sfDialog.FileName = "FILE";

        if (sfDialog.ShowDialog() == DialogResult.OK)
        {
            //do stuff
        }

詳細については、http://msdn.microsoft.com/en-us/library/system.windows.forms.savefiledialog.aspxを参照してください。

于 2010-02-21T14:54:15.933 に答える