Re: [要望] TKFP.dllでのフォルダ一括コピー ( No.1 ) |
- 日時: 2011/10/21 23:29
- 名前: Toki◆pRU.c9X.EOI
- 貴重なご意見ありがとうございます。
開発時にこの機能については一度検討したのですが、 フォルダの状態によってはコピーに非常に時間がかかる可能性があり、 また、一度のコマンドで完結せず、大量の通信が発生する可能性があったため実装は見送りました。
ライブラリではサポートはできませんが、 ローカルHDD内のコピーと同様にフォルダ内を再起的に読み出してコピーした方が、 コピー中の状態表示や中断処理が可能になるので、結局その方法で実装することになると思いますよ。
|
Re: [要望] TKFP.dllでのフォルダ一括コピー ( No.2 ) |
- 日時: 2011/10/24 09:09
- 名前: LINK
- Toki様
LINKです。
返信が遅れてすみません。 御確認、ありがとうございます。
> フォルダの状態によってはコピーに非常に時間がかかる可能性があり、 > また、一度のコマンドで完結せず、大量の通信が発生する可能性があったため実装は見送りました。
> ライブラリではサポートはできませんが、 > ローカルHDD内のコピーと同様にフォルダ内を再起的に読み出してコピーした方が、 > コピー中の状態表示や中断処理が可能になるので、結局その方法で実装することになると思いますよ。 了解しました。 書き込みした後に再帰的にフォルダの確認で対応するしかないかなと思っていました。 現時点では、使用方法が限定されている(データ小、中断等無し)ので、こんな感じで組みました。 *通信中で DirSearch を呼び出すことにしました。 *素人なもんでたいした記述ではないですが… ほかの方に参考になれば ---------------------- '//sDir:コピーするディレクトリ(FTP側) '//cpDir:コピー先の親ディレクトリ(PC側) '//戻り値:Boolean Function DirSearch(ByVal sDir As String, ByVal cpDir As String) As Boolean
Dim d As TKFP.IO.DirectoryInfo Dim f As TKFP.IO.FileInfo
Try
For Each d In CurrentDirectory.GetDirectories(sDir)
'//FTPディレクトリを指定 CurrentDirectory = New TKFP.IO.DirectoryInfo(FtpClient, d.FullName)
'//コピー先の指定ディレクトリに[\]ついているか確認 If Not cpDir.Trim.EndsWith("\") Then cpDir &= "\" End If '//ディレクトリの作成 System.IO.Directory.CreateDirectory(cpDir & d.Name)
'//ファイルをコピー For Each f In d.GetFiles f.CopyTo(cpDir & d.Name & "\" & f.Name) Next
'//サブディレクトリの確認 DirSearch("*", cpDir & d.Name)
Next
Catch ex As Exception Return False End Try
Return True
End Function
|