Конференция ".Net" » Как определить каталог в SaveFileDialog [D2005, WinXP]
 
  • Б.А.С. © (01.05.07 17:48) [0]
    Для сохранения файла (в моей программе) я хочу открыть SaveFileDialog1 и подставить в него имя файла которого еще нет в этом каталоге (Безымянный 1, .. Безымянный N). Но так как SaveFileDialog1 открывает тот каталог который был открыт при сохранении предыдущего файла (RestoryDirectory=false), я не могу проверить существование в нем файла "Безымянный N".

    Подскажите, пожалуйста как мне узнать какой каталог откроется в SaveFileDialog1.

    InitialDirectory и FileName не подходят
  • Б.А.С. © (03.05.07 19:17) [1]
    Почему все молчат? Может я вопрос плохо сформулировал?
  • Александр Иванов © (04.05.07 09:05) [2]
    Плохо :) Но поняли. Ты предоставляешь пользователю право выбрать имя для файла, зачем при этом ему подсовывать какие-то имена? Или сохраняй сам, или оставь пользователя право самому выбрать имя.
  • БАС (04.05.07 10:20) [3]
    В Microsoft Word при сохранении документа пользователю подставляется имя Doc1, а если этот файл существует то Doc2 и пользователю остается только нажать ОК. Если же такой подстановки небыло бы, тогда пользователю всегда приходилось бы изменять (вводдить) имя файла - тратить драгоценное время. А это не есть хорошо. Так что это вещь нужная, а каталог определить не могу.
  • clickmaker © (04.05.07 16:05) [4]
    LName := GetCurrentDir + '\Doc2.doc';
    if FileExists(LName) then
     LName := 'Doc3.doc';
    SaveDialog.FileName := LName;
  • Б.А.С. © (04.05.07 18:35) [5]
    Возможно. Но GetCurrentDir это Win32 функция, а мне .Net нужна. К таму же в Win32 значение функции GetCurrentDir при выходе из программы сбрасывается. А каталог открывающийся моей программе почему-то остается неизменным. (Даже если компьютер перезагрузить). Возможно .Net программы хранят какую-то информацию в реестре или где-то еще.
  • clickmaker © (04.05.07 18:49) [6]
    System.IO.Directory.GetCurrentDirectory()
  • Б.А.С. © (04.05.07 19:29) [7]
    Действительно .Net! И почти работает. Т.е. при первом запуске GetCurrentDirectory выдает каталог из которого была запущена программа, а SaveFileDialog1 открывает совсем другой каталог.

    При выборе в нем любого файла GetCurrentDirectory меняет значение на каталог этого файла. Но как узнать какой каталог откроется в первый раз?
  • KilkennyCat © (05.05.07 02:09) [8]
    а не два слэша надо?
  • KilkennyCat © (05.05.07 02:13) [9]
    saveFileDialog1.InitialDirectory = "c:\\temp";
  • KilkennyCat © (05.05.07 02:14) [10]
    Определение, соответственно, наоборот.
  • Б.А.С. © (05.05.07 12:14) [11]
    Это зачем?
  • KilkennyCat © (05.05.07 16:12) [12]
    что зачем?
  • Б.А.С. © (05.05.07 20:06) [13]
    Я пытаюсь узнать как определить каталог который откроется при вызове SaveFileDialog если его свойство RestoryDirectory=false. А причем тут два слэша?
  • KilkennyCat © (06.05.07 02:32) [14]
    SaveFileDialog открывается там, где InitialDirectory. Два слэша ибо дотНЕТ. дотНЕТ - это юникод, служебные символы и все такое... поэтому, один слэш воспринимается как служебный символ. Либо пишем так: fileName = "C:\\Temp\\doc1.txt", либо fileName = @"C:\Temp\doc1.txt"... гм... только ща сообразил, что я основываюсь на С#. :))
  • Б.А.С. © (06.05.07 13:05) [15]
    SaveFileDialog открывается в InitialDirectory только когда RestoryDirectory=true, а в остальных случаях в той папке в которой этот он ранее сохранял файл.
  • KilkennyCat © (06.05.07 22:04) [16]
    Хорошо, но разве в этих остальных случаях это достигается не автоматическим изменением InitialDirectory?
  • Б.А.С. © (06.05.07 22:50) [17]
    Нет. InitialDirectory у меня = ''
 
Конференция ".Net" » Как определить каталог в SaveFileDialog [D2005, WinXP]
Есть новые Нет новых   [118691   +21][b:0][p:0.001]