- PR -

VB2005でファイルのコピー

1
投稿者投稿内容
トッティ
ベテラン
会議室デビュー日: 2008/04/01
投稿数: 64
投稿日時: 2008-09-30 09:48
 おはようございます。

VB2005であるフォルダ内の全てのCSVファイルを別のフォルダにコピーし、フォルダ内の
ファイルを削除したいのです。

VB6.0では

Dim fso As New FileSystemObject
Dim fol As Folder
Dim fil As Files
Dim fl As File

Set fol = fso.GetFolder(D:\AA\)
Set fil = fol.Files
For Each fl In fil
fso.CopyFile "D:\AA\" & fl.Name, "D:\BB\" & fl.Name, True
Next
Set fl = Nothing
** 削除
Kill ("D:\AA\" & "*.TXT")

としていました。

VB2005でも同様なことがしたいのですが
どのように書くのでしょうか?


じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-09-30 10:15
System.IO.File クラス、System.IO.Directory クラスを使えば FileSystemObject とほぼ同じ感覚で実装できるでしょう。
  • System.IO.Directory.GetFiles メソッド (ワイルド カードで csv を指定)
  • System.IO.File.Copy メソッド
  • System.IO.File.Delete メソッド
  • 場合によっては再帰 (VB6.0 のコードを見る限り不要)
このあたりを組み合わせるだけですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
トッティ
ベテラン
会議室デビュー日: 2008/04/01
投稿数: 64
投稿日時: 2008-09-30 11:16
 ありがとうございます。

早速調べて
Dim conPATH As String = "C:\AA\"
Dim conBKPATH As String = "C:\BB\"

Dim fs As String() = System.IO.Directory.GetFiles(conPATH, "*.*")
'
For Each f As String In fs
System.IO.File.Copy(f, conBKPATH & System.IO.Path.GetFileName(f), True)
System.IO.File.Delete(f)
Next

と書いてみました。

このような感じでしょうか?
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-09-30 12:43
引用:

トッティさんの書き込み (2008-09-30 09:48) より:

VB2005であるフォルダ内の全てのCSVファイルを別のフォルダにコピーし、フォルダ内の
ファイルを削除したいのです。



引用:

トッティさんの書き込み (2008-09-30 11:16) より:

Dim conPATH As String = "C:\AA\"
Dim conBKPATH As String = "C:\BB\"

Dim fs As String() = System.IO.Directory.GetFiles(conPATH, "*.*")
'
For Each f As String In fs
System.IO.File.Copy(f, conBKPATH & System.IO.Path.GetFileName(f), True)
System.IO.File.Delete(f)
Next



これだと、仮にフォルダの中にcsvファイルでないものがあってもコピー・削除の対象になりますが、大丈夫ですか?
トッティ
ベテラン
会議室デビュー日: 2008/04/01
投稿数: 64
投稿日時: 2008-09-30 13:12
rainさん、わざわざすいませN。

フォルダ内のサブフォルダ以外全てのファイルのコピーでOKです。
トッティ
ベテラン
会議室デビュー日: 2008/04/01
投稿数: 64
投稿日時: 2008-09-30 13:12
rainさん、わざわざすいませN。

フォルダ内のサブフォルダ以外全てのファイルのコピーでOKです。
1

スキルアップ/キャリアアップ(JOB@IT)