On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 1650
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.02.11 04:12. Заголовок: Перенос папок ?


Всем привет.

Подскажите как можно определенную ПАПКУ перенести на другой диск ?
Т.е. имеем ПАПКУ начального уровня, а сколько там еще папок и файлов не известно !

И как эту папку со всем содержимым перенести на другой диск ?

Файлы легко переносятся, а вот с папками затык получается....
Может у кого есть готовое решение ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 71 , стр: 1 2 3 4 All [только новые]





Пост N: 574
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 04.09.12 12:38. Заголовок: Andrey пишет: А про..


Andrey пишет:

 цитата:
А проект сразу собрался ? Или правил мой test_dir55.hbp ?


запускал сначала твой exe, потом собирал ничего не меняя в hbp, все нормально.
А вот с папкой для пробы не работатет!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2322
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.09.12 12:48. Заголовок: AlexMyr пишет: запу..


AlexMyr пишет:

 цитата:
запускал сначала твой exe, потом собирал ничего не меняя в hbp, все нормально.


Значит я прогу правильно собрал, а то уж тупить начал...
Ура, получилось собирать на Harbour'e !!!

AlexMyr пишет:

 цитата:
А вот с папкой для пробы не работатет!


Да видать не все работает ...
Значит не я туплю !
Интересно, а что там в папочке такого, что Харбор ломается ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 575
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 04.09.12 12:53. Заголовок: // Определяю спис..


// Определяю список подкаталогов и файлов корневого каталога
aDirFiles := MyDirectoryRecurse( cSource, cMaskaFileCopy, { } )

возвращает пустой масив, нужно ковырять MyDirectoryRecurse, что-то не так!

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 576
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 04.09.12 12:55. Заголовок: похоже ф-я не правил..


похоже ф-я не правильно обрабатывает файлы без расширений, вот, если все файлы с расширениями, то все нормально!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2323
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.09.12 13:10. Заголовок: AlexMyr пишет: нужн..


Резуме:
Пример ПРАВИЛЬНО работает на Harbour 3.x и xHarbour v.9437 Bcc 551, при условии
что файлы в папке удаления ТОЛЬКО с расширениями !
В остальных компиляторах не работает пример.

Ура победили совместными усилиями !!!
Всем БОЛЬШОЕ СПАСИБО за помощь !

AlexMyr пишет:

 цитата:
нужно ковырять MyDirectoryRecurse,



Брал из МиниГуи - пример SAMPLES\BASIC\DirectoryRecurse

Проверил пример - ничего не показывает !

Тогда наверно с этой ошибкой к Филатову !

Или самим исправить можно ?



Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 98
Зарегистрирован: 16.12.08
ссылка на сообщение  Отправлено: 04.09.12 13:27. Заголовок: Andrey пишет: А что..


Andrey пишет:

 цитата:
А что за файл - xhb_copy_file.xpj ?
Каким редактором пользуешься ?


Я использую xEdit от Xailer http://www.xailer.com/.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 578
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 04.09.12 17:17. Заголовок: Написал с нуля перен..


Написал с нуля перенос папок, пробуй. Будут вопросы - задавай

 
#include "directry.ch"

STATIC cPathG := ""

FUNC main( cSource )

LOCAL ad1 := {}

IF cSource == Nil
Alert( "Put the source path" )
ELSE
IF hb_DirExists( cSource )
scan_dir( cSource, "*.*", @ad1, .F. )
IF MyMove( "c:\BackUp1", ad1 ) == 0
scan_dir( cSource, "*.*", ad1, .T. )
ENDIF
ELSE
Alert( cSource + " don't exist" )
ENDIF
ENDIF

RETURN nil

FUNC scan_dir( cPath, cFMask, arr, lDele )

LOCAL x := 0, nResDel
LOCAL aDir
LOCAL cSavePath := cPathG

cPathG += cPath + "\"
aDir := Directory( AllTrim( cPathG ) + AllTrim( cFMask ), "D" )
AAdd( arr, { cPathG, aDir } )
FOR x := 1 TO Len( aDir )
IF aDir[x,F_ATTR] == "D" .AND. ! AllTrim( aDir[x,F_NAME] ) $ ". .."
scan_dir( aDir[x,F_NAME], "*.*", @arr, lDele )
ELSEIF aDir[x,F_ATTR] != "D" .AND. lDele
OutStd( hb_eol() )
OutStd( "DELETE FILE " + cPathG + aDir[x,F_NAME] )
FErase( cPathG + aDir[x,F_NAME] )
nResDel := FError()
OutStd( " ..." + iif( nResDel == 0," OK",Str(nResDel ) ) )
ENDIF
NEXT
IF lDele
OutStd( hb_eol() )
OutStd( "DELETE DIR " + cPathG )
hb_DirDelete( cPathG )
nResDel := FError()
OutStd( " ..." + iif( nResDel == 0," OK",Str(nResDel ) ) )
ENDIF
cPathG := cSavePath

RETURN nil

PROC MyMove( cTarget, arr )

LOCAL x, y, nRes

IF ! hb_DirExists( cTarget )
hb_DirCreate( cTarget )
ENDIF
for EACH x in arr
hb_DirCreate( cTarget + "\" + x[1] )
IF ValType( x[2] ) == "A" .AND. ! Empty( x[2] )
for EACH y in x[2]
IF ! y[1] $ ". .."
OutStd( hb_eol() )
OutStd( "COPY FILE " + x[1] + y[1] + " TO " + ctarget + "\" + x[1] + y[1] )
__CopyFile( ( x[1] + y[1] ), ( ctarget + "\" + x[1] + y[1] ) )
nres := FError()
OutStd( " ..." + iif( nRes == 0," OK",Str(nRes ) ) )
ENDIF
next
ENDIF
next

RETURN nRes





Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2329
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.09.12 14:59. Заголовок: AlexMyr пишет: Напи..


AlexMyr пишет:

 цитата:
Написал с нуля перенос папок, пробуй.



Ну молодец !
Буду пробовать...

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 580
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 05.09.12 23:13. Заголовок: Немного подправил и ..


Немного подправил и добавил.

Теперь на входе два параметра 1-й исходная папка, 2-й опция -move, если указана - делаем перенос, если нет - просто копируем.

Папку можно задавать и с указанием полного пути к ней!

Копирование с выводом лога в файл aa.log
prog1 PRIKOL >aa.log
то же, но с указанием полного пути
prog1 c:\path1\PRIKOL >aa.log

Перенос с выводом лога в файл aa.log
prog1 PRIKOL -move >aa.log
то же, но с указанием полного пути
prog1 c:\path1\PRIKOL -move >aa.log


#include "directry.ch" 
#include "hbextcdp.ch"

STATIC cPathG := ""

FUNC main( cSource, lMove )

LOCAL ad1 := {}
LOCAL cHostCP := "UA1251"
LOCAL cTermCP := "UA1251"
LOCAL lBoxChar := .T.

hb_cdpSelect( cHostCP )
hb_SetTermCP( cTermCP, cHostCP, lBoxChar )
IF cSource == Nil
Alert( "Put the source path" )
ELSE
IF hb_DirExists( cSource )
scan_dir( cSource, "*.*", @ad1, .F. )
IF MyMove( "c:\BackUp1", ad1 ) == 0
IF lMove != NIL .AND. Lower( AllTrim( lMove ) ) == "-move"
scan_dir( cSource, "*.*", ad1, .T. )
ENDIF
ENDIF
ELSE
Alert( cSource + " don't exist" )
ENDIF
ENDIF

RETURN nil

FUNC scan_dir( cPath, cFMask, arr, lDele )

LOCAL x := 0, nResDel
LOCAL aDir
LOCAL cSavePath := cPathG

cPathG += cPath + "\"
aDir := Directory( AllTrim( cPathG ) + AllTrim( cFMask ), "D" )
AAdd( arr, { cPathG, aDir } )
FOR EACH x in aDir
IF x[F_ATTR] == "D" .AND. ! AllTrim( x[F_NAME] ) $ ". .."
scan_dir( x[F_NAME], "*.*", @arr, lDele )
ELSEIF x[F_ATTR] != "D" .AND. lDele
OutStd( hb_eol() )
OutStd( "DELETE FILE " + cPathG + x[F_NAME] )
FErase( cPathG + x[F_NAME] )
nResDel := FError()
OutStd( " ..." + iif( nResDel == 0," OK",Str(nResDel ) ) )
ENDIF
NEXT
IF lDele
OutStd( hb_eol() )
OutStd( "DELETE DIR " + cPathG )
hb_DirDelete( cPathG )
nResDel := FError()
OutStd( " ..." + iif( nResDel == 0," OK",Str(nResDel ) ) )
ENDIF
cPathG := cSavePath

RETURN nil

PROC MyMove( cTarget, arr )

LOCAL x, y, nRes, cPathwoDisk := "", cDirItem, cPathLong := ""

IF ! hb_DirExists( cTarget )
hb_DirCreate( cTarget )
ENDIF
for EACH x in arr
IF ":" $ x[1]
cPathwoDisk := SubStr( x[1], hb_At( ":\",x[1] ) + 2 )
ELSE
cPathwoDisk := x[1]
ENDIF
cPathLong := cTarget
FOR EACH cDirItem IN hb_ATokens( cPathwoDisk, hb_ps() )
IF !Empty( cDirItem )
cPathLong += hb_ps() + cDirItem
if ! hb_DirExists(cPathLong)
hb_DirCreate( cPathLong )
endif
ENDIF
next
IF ValType( x[2] ) == "A" .AND. ! Empty( x[2] )
for EACH y in x[2]
IF ! y[1] $ ". .."
OutStd( hb_eol() )
OutStd( "COPY FILE " + x[1] + y[1] + " TO " + ctarget + "\" + cPathwoDisk + y[1] )
__CopyFile( ( x[1] + y[1] ), ( ctarget + "\" + cPathwoDisk + y[1] ) )
nres := FError()
OutStd( " ..." + iif( nRes == 0," OK",Str(nRes ) ) )
ENDIF
next
ENDIF
next

RETURN nRes



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2330
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.09.12 14:15. Заголовок: AlexMyr пишет: Немн..


AlexMyr пишет:

 цитата:
Немного подправил и добавил.



Спасибо большое за пример !
Попробую его на хХарбор переделать... Я пока на нем сижу.

Дай пожалуйста свой е-майл, хочу прогу выслать... Или мне на почту напиши 30195 СОБАКА mail.ru


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 581
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 06.09.12 16:06. Заголовок: e-mail в профиле ук..


e-mail в профиле указан. А что за прога?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 71 , стр: 1 2 3 4 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 11
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет