2017-11-20 3 views
-1

私は複数のファイルを開き、それらを使ってファイルを処理するプログラムを持っています。私は、デフォルトの場所を選択し、設定として保存するボタンがあります。ファイルを開くダイアログ間違ったディレクトリに移動する

OpenFileDialog defLoc = new OpenFileDialog() 
{ 
    CheckPathExists = true, 
    Title = "Select the default folder" 
}; 

if (defLoc.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
{ 
    Properties.Settings.Default.DefaultFolder = 
     System.IO.Path.GetDirectoryName(defLoc.FileName); 
    Console.WriteLine("Default folder set: " + Properties.Settings.Default.DefaultFolder); 
} 

これ以降、2つの選択ファイルボタンがあります。彼らはそれぞれ独自のメソッドで独自のOpenFileDialogを持っています。何らかの理由で、彼らは最後の場所のグループメモリを共有しているように見えます。例:

まず、私はその後、私は今、私はOpenFile2を使用する場合、私は、デフォルトとして設定された場所に戻って開始C:\Desktop、代わりに終わりにしたいC:\Desktop\GenericFolder\GenericFile1.txt

を選択するために、OpenFile1を使用C:\Desktop

にます。DefaultLocation設定C:\Desktop\GenericFolderで始まる。私のコードで

私は、各OpenFileDialogを初期化するときに、この操作を行います。

OpenFileDialog openFileDialog1 = new OpenFileDialog 
     { 
      InitialDirectory = Properties.Settings.Default.DefaultFolder, 
      RestoreDirectory = false, 
     }; 

これは私が設定していた場所で私を置くべきであるが、それにはないいくつかの理由があります。代わりに、私は上に示したように最後の開いた場所で私を吐き出すだけです。

編集: スティーブのアドバイスでは、Console.WriteLine();の直後にProperties.Settings.Default.Save();をデフォルトのファイルピッカーに追加しました。

+2

デバッガを使用すると、コードをステップ実行するときに 'InitailDirectory'の値は何ですか?また、あなたは 'OpenFileDialog'の使い方に関するMSDNの例を見てきましたか?これをオンラインで行う方法の実例がたくさんあります – MethodMan

+2

save()を呼び出しましたか? – Steve

+0

@スティーブありがとう...私はそれを忘れていたと信じられない。それは今働く。 –

答えて

1

問題は、パスを設定した後にSave()に電話しなかったことです。次回アプリケーションを起動すると、設定がリセットされます。

関連する問題