Доступ в "Мои документы"
От: YurySS Россия  
Дата: 19.02.08 06:26
Оценка:
Работаю на Delphi 6
Выгружаю данные в Excel и хочу сохранить файл в Мои документы.
Пробовал так:


  XLFileDir := '%userprofile%'+'\my documents\';
  XLFileName := XLFileDir + 'Выгрузка данных';
  try
    if not DirectoryExists(XLFileDir)
    then ForceDirectories(XLFileDir);

    if DirectoryExists(XLFileDir) then
    begin
      if FileExists(XLFileName)
      then DeleteFile(XLFileName);

      if FileExists(XLFileName) then
      begin
        uMessages.Error('Невозможно записать файл '+#13#10+XLFileName+
                         #13#10+'Не удалось удалить старую версию файла.');
      end
      else
      begin
        eteBrowse.ExcelApp.ActiveWorkbook.SaveAs(XLFileName);
        uMessages.Information('Успешно сохранен файл '+#13#10+XLFileName);
      end;
    end
    else
    begin
      uMessages.Error('Не сохранен файл '+#13#10+XLFileName+
                            #13#10+'Не удалось создать путь.');
    end;
  except
    on E: Exception do uMessages.Error(XLFileName+#13#10+E.Message);
  //  uMessages.Error('Не удалось сохранить файл '+#13#10+XLFileName);
  end


Не получается:
ругается, что не может создать папку '%userprofile%\my documents\', ПОМОГИТЕ!
Вторую проблему вижу в том, что на русских Windows XP папка называется Мои документы, на английских = My Documents
... << RSDN@Home 1.2.0 alpha rev. 789>>
Re: Доступ в "Мои документы"
От: Hacker_Delphi Россия  
Дата: 19.02.08 06:49
Оценка:
Здравствуйте, YurySS, Вы писали:

Читай функцию SHGetFolderPath.
Чтобы не было проблем с языками — используй дальше юникодные версии системных функций, хотя с текущей локалью Delphi вроде бы стабильно работает и без этого
... << RSDN@Home 1.2.0 alpha rev. 789>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Re[2]: Доступ в "Мои документы"
От: YurySS Россия  
Дата: 19.02.08 08:45
Оценка:
Спасибо, то что надо!
... << RSDN@Home 1.2.0 alpha rev. 789>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.