:: Visual Foxpro, Foxpro for DOS
Сохранение точного названия файла при копировании
lili

Сообщений: 436
Откуда: Сыктывкар
Дата регистрации: 07.11.2005
Здравствуйте!
Нужно скопировать файл в заданную директрию, сохраняя его точное название, например, AbCdEf.doc.
При использовании putfile() в диалоговом окне копирования название файла изменяется на строчные (маленькие) буквы.
Если просто выбирать директорию копирования getdir(), то нет возможности при необходимости создавать новую директорию для копирования.
Подскажите, пожалуйста, решение.
Ratings: 0 negative/0 positive
Re: Сохранение точного названия файла при копировании
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
lili
Здравствуйте!
Нужно скопировать файл в заданную директрию, сохраняя его точное название, например, AbCdEf.doc.
При использовании putfile() в диалоговом окне копирования название файла изменяется на строчные (маленькие) буквы.
Если просто выбирать директорию копирования getdir(), то нет возможности при необходимости создавать новую директорию для копирования.
Подскажите, пожалуйста, решение.

Можно использовать другой вариант, например решение из стандартного набора solution:
(вот тут говорилось: forum.foxclub.ru )
DO FORM (HOME(2)+"solution\ffc\getfilex.scx")
Если поставить там птичку на "save" - видимо будет подходящий диалог.
Естественно, взяв оттуда как шаблон, уже допилить для себя.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)




Исправлено 2 раз(а). Последнее : Crispy, 01.04.21 12:10
Ratings: 0 negative/0 positive
Re: Сохранение точного названия файла при копировании
dimuhametov

Сообщений: 1562
Откуда: Костанай
Дата регистрации: 01.11.2008
PROCEDURE myPUTFILE
LPARAMETERS cCustomText,cFileName,cFileExtensions
LOCAL m.lcfile,cFolder,m.lcext
m.cFileName=m.cFileName+IIF(JUSTEXT(m.cFileName)='','.'+m.cFileExtensions,'')
EXECSCRIPT('SET DEFAULT TO "' + JUSTPATH(m.cFileName)+ '"')
m.cCustomText=IIF(EMPTY(m.cCustomText),'',m.cCustomText)
m.cFileName=IIF(EMPTY(m.cFileName),'',m.cFileName)
m.cFileExtensions=IIF(EMPTY(m.cFileExtensions),'',m.cFileExtensions)
m.lcfile=PUTFILE(m.cCustomText,JUSTFNAME(m.cFileName),m.cFileExtensions)
m.cFolder=ADDBS(JUSTPATH(m.lcfile))
TRY
oFSO=CreateObject("Scripting.FileSystemObject")
loDir=oFSO.GetFolder(m.cFolder)
m.lcext=JUSTSTEM(m.cFileName)
m.lcfile=ADDBS(loDir.path)+IIF(LOWER(JUSTSTEM(m.lcfile))=LOWER(m.lcext),m.lcext+'.'+LOWER(JUSTEXT(m.lcfile)),JUSTFNAME(m.lcfile))
CATCH
ENDTRY
RETURN m.lcfile


------------------
Незнание делает жизнь такой интересной.
Ratings: 0 negative/1 positive
Re: Сохранение точного названия файла при копировании
lili

Сообщений: 436
Откуда: Сыктывкар
Дата регистрации: 07.11.2005
УВЫ (( С использованием comdlg - в диалоге правильное название, а фактически скопированный файл - маленькими буквами ((



Исправлено 1 раз(а). Последнее : lili, 01.04.21 14:58
Ratings: 0 negative/0 positive
Re: Сохранение точного названия файла при копировании
lili

Сообщений: 436
Откуда: Сыктывкар
Дата регистрации: 07.11.2005
1



Исправлено 1 раз(а). Последнее : lili, 01.04.21 15:08
Ratings: 0 negative/0 positive
Re: Сохранение точного названия файла при копировании
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
lili
Спасибо, все хорошо получается с использованием comdlg, только смущает название кнопки "Открыть". А как-то ее название поменять есть возможность? ;)

Ну так в упомянутой форме, если ее запустить - внизу на ней есть кнопка для запуска уже непосредственно окна для файла, там же слева и выше - есть и чекбокс "save", о чем я и упомянул ранее (надо просто запустить саму форму по приведенной ранее строке кода, и будет все видно).
Если этот чекбокс пометить, то при запуске кнопкой окна для файла вместо надписи "открыть" будет надпись "сохранить" - с соответствующей заменой функциональности кнопки.
Т.е. надо просто глянуть код, срабатывающий при пометке этого чекбокса. Там и будет ответ.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)




Исправлено 2 раз(а). Последнее : Crispy, 01.04.21 15:05
Ratings: 0 negative/0 positive
Re: Сохранение точного названия файла при копировании
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> а фактически скопированный файл - маленькими буквами

Вот, тоже маялся с регистром в имени (и расширении) файла. Даже если его сделать "правильным", то при копировании на флешку регистр может быть утерян. Кончилось тем, что такой файл я изготовляю и сразу зипую. Внутри ZIP-а регистр хранится надежно...
Ratings: 0 negative/0 positive
Re: Сохранение точного названия файла при копировании
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
of63
> а фактически скопированный файл - маленькими буквами
Вот, тоже маялся с регистром в имени (и расширении) файла. Даже если его сделать "правильным", то при копировании на флешку регистр может быть утерян. Кончилось тем, что такой файл я изготовляю и сразу зипую. Внутри ZIP-а регистр хранится надежно...

В принципе с регистром при копировании можно и проще решать. Когда-то я делал это через VBS-скрипт. Причем из-под FPD - там ведь вообще с регистром ничего не сделаешь. А надо было чтобы итоговый файл в другом регистре - для программы налоговых отчислений, иначе она не понмиала.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Сохранение точного названия файла при копировании
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Чет не пойму.
А через
Createobject('Scripting.FileSystemObject')
Чем не устраивает?
Ratings: 0 negative/0 positive
Re: Сохранение точного названия файла при копировании
lili

Сообщений: 436
Откуда: Сыктывкар
Дата регистрации: 07.11.2005
Taran
Чет не пойму.
А через
Createobject('Scripting.FileSystemObject')
Чем не устраивает?
А разве там есть метод вызова диалогового окна копирования файла??
Ratings: 0 negative/0 positive
Re: Сохранение точного названия файла при копировании
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Насчёт диалога не помню.

Вернувшись к начальному посту.
"Создание каталога при getdir".
Насколько помню в крайних версиях фокса можно создавать каталоги при указании доп параметров.
Ratings: 0 negative/0 positive
Re: Сохранение точного названия файла при копировании
dimuhametov

Сообщений: 1562
Откуда: Костанай
Дата регистрации: 01.11.2008
PROCEDURE myGETDIR
LPARAMETERS cDirectory,cText,cCaption,nFlags,lRootOnly
LOCAL m.lcpath
m.cDirectory=IIF(EMPTY(m.cDirectory),'',m.cDirectory)
m.cText=IIF(EMPTY(m.cText),'',m.cText)
m.cCaption=IIF(EMPTY(m.cCaption),'',m.cCaption)
m.nFlags=IIF(EMPTY(m.nFlags),0,m.nFlags)
m.lcpath=GETDIR(m.cDirectory,m.cText,m.cCaption,m.nFlags,m.lRootOnly)
TRY
oFSO=CreateObject("Scripting.FileSystemObject")
loDir=oFSO.GetFolder(m.lcpath)
m.lcpath=ADDBS(loDir.path)
CATCH
ENDTRY
RETURN m.lcpath


------------------
Незнание делает жизнь такой интересной.
Ratings: 0 negative/0 positive
Re: Сохранение точного названия файла при копировании
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Taran
Насчёт диалога не помню.
Вернувшись к начальному посту.
"Создание каталога при getdir".
Насколько помню в крайних версиях фокса можно создавать каталоги при указании доп параметров.

Кстати да. Если это и нужно. Называется: "использование нового интерфейса".
Что-то типа:
GETDIR(cDirectory, cText, cCaption, 64)


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Сохранение точного названия файла при копировании
Каратаев

Сообщений: 3977
Откуда: Алматы
Дата регистрации: 04.12.2001
Выжрал из рабочей программы:
IF FILE(m.lcZipFile)
oFso = CreateObject("Scripting.FileSystemObject")
* теперь скопируем новый архив
oFso.CopyFile(m.lcZipFile, lcModemFolder+JUSTFNAME(m.lcZipFile), .T.)
RELEASE oFso
ENDIF


------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.




Исправлено 2 раз(а). Последнее : Каратаев, 02.04.21 11:59
Ratings: 0 negative/1 positive
Re: Сохранение точного названия файла при копировании
lili

Сообщений: 436
Откуда: Сыктывкар
Дата регистрации: 07.11.2005
GETDIR(cDirectory, cText, cCaption, 64) - спасибо, то, что надо.
Ratings: 0 negative/0 positive
Re: Сохранение точного названия файла при копировании
akvvohinc

Сообщений: 4219
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
Нужно скопировать файл в заданную директорию, сохраняя его точное название, например, AbCdEf.doc.
При использовании putfile() в диалоговом окне копирования название файла изменяется на строчные (маленькие) буквы.
Дело же не в том, какими буквами отображается имя файла в этом диалоге, а в том, что возвращает эта функция путь и имя файла БОЛЬШИМИ буквами.

lili
GETDIR(cDirectory, cText, cCaption, 64)
И как это сказывается на имени самого файла?
Ratings: 0 negative/0 positive
Re: Сохранение точного названия файла при копировании
sphinx
Автор

Сообщений: 31180
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Ну да. FSO рулит.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 11 akvvohinc  (Гостей: 10)

© 2000-2024 Fox Club 
Яндекс.Метрика