The project of U-WA-
http://uwa.potetihouse.com/
トップページ > 過去ログ > 記事閲覧
アイコン [要望] TKFP.dllでのフォルダ一括コピー
日時: 2011/10/18 13:01
名前: LINK

Toki様
LINKと申します。

TKFP.dllについてですが、フォルダの一括コピーを実装していただきたく思います。
時間のあるときで結構ですのでご検討下さい。

以上

Page: 1 |

ファイル 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


Page: 1 |