フォルダのコピー?

解決


ローホ  2005-09-08 04:25:02  No: 125002

前回(先月?)はお世話になりました。またVB.NETについてお聞きします。

フロッピー等からフォルダごとコピーすることはできないんでしょうか?
「フォルダを作成する」、「ファイルをコピーする」といったことはなんとか
調べられたんですが…  相変わらず稚拙かもしれませんが…↓

'テスト
If System.IO.Directory.Exists("D:\TestFolder") = False Then
    System.IO.Directory.CreateDirectory("D:\TestFolder")
    FileCopy("A:\Test.mdb", "D:\TestFolder\Test.mdb")
End If

できればTest.mdbを含めたTestFolderごと保存されている状態の
フロッピー等からフォルダごとコピーしたいんですが。


いな  2005-09-08 05:52:10  No: 125003

調べ方が、甘い気がします。
「フォルダ コピー VB.NET」をキーワードにgoogleで検索したら
すぐ下記のようなページが見つかりました・・・。
http://dobon.net/vb/dotnet/file/copyfolder.html


ねろ  2005-09-08 06:23:23  No: 125004

dos のXcopy を使ったらどうかな。
xcopy folder \newfolder\*.* /s


我龍院忠太  2005-09-08 17:26:04  No: 125005

これでいけると思うが、
Dim FromCopyFolder As String = "c:\hoge\*.*"
Dim ToCopyFolder As String = "c:\newhoge\*.*"
Dim PStartI As New System.Diagnostics.ProcessStartInfo
Cursor.Current = Windows.Forms.Cursors.AppStarting()
PStartI.FileName = System.Environment.GetEnvironmentVariable("ComSpec")
PStartI.RedirectStandardOutput = True   'Outをリダイレクト
PStartI.UseShellExecute = False         'リダイレクトを可能にする
PStartI.CreateNoWindow = True           'Dos窓非表示
PStartI.Arguments = "/c xcopy " + FromCopyFolder + " " + ToCopyFolder + " /s"  '/c は必要
Dim MyProcess As Process = Process.Start(PStartI)
Dim ReturnString As String = MyProcess.StandardOutput.ReadToEnd
TextBox1.Text = ReturnString
MyProcess.WaitForExit()
Cursor.Current = Windows.Forms.Cursors.Default


マグ  2005-09-08 23:05:57  No: 125006

Dosを操作するのでしたら、http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200508/05080007.txt
を呼んでみてはどうでしょうか?
途中中断が可能になります。


ローホ  2005-09-09 02:45:34  No: 125007

皆様レスありがとうございます。皆さんからいただたアドバイスを参考に
一通り検証してみました。

いなさん
>調べ方が、甘い気がします。
仰るとうりでした。リンク先のサンプルをほぼそのまま抜粋するような形で
試したところ、思惑通りの動作をしてくれました。

ねろさん
>dos のXcopy を使ったらどうかな。
>xcopy folder \newfolder\*.* /s
とりあえず
Shell("xcopy a:\TestFolder d:\TestFolder\*.* /s")
と記述して試したところうまく動いてくれました。
ただ、元々コマンドプロンプトとかもよく分からない状態だったので
*.*(全て?)の使い方がよく分かりませんでした・・・
「フロッピー内のフォルダごと全部Dドライブ直下にコピー」と考えた時
フォルダごと全部→a:\TestFolder\*.*、Dドライブ直下に→d:\ などと
考えてみた結果 xcopy a:\TestFolder\*.* d:\ /s のような記述をしてみたり・・・
最終的には↑で落ち着きました。あと/sについてはコマンドプロンプトで
help xcopyで見ました(サブディレクトリもコピー)

我龍院忠太さん
>これでいけると思うが、
バッチリいけました。
まんま抜粋してFromCopyFolder,toCopyFolderだけ変えただけでした。
ただ上記と同じで、こっちは両方に*.*つくのか?とやはり同じところで
考え込んでました。今後はこちらの方も少しずつ勉強します。


ローホ  2005-09-09 02:48:29  No: 125008

マグさん、すいません。午後ずっと画面更新してなかったもので…
さっそく読んでみます。


我龍院忠太  2005-09-09 05:56:53  No: 125009

すんません  orz
ねろ = 我龍院忠太 です。
HMがどこかで被った気がするので、とりあえず替えてます。


ローホ  2005-09-09 19:34:59  No: 125010

すいません、解決策教えていただいたのに解決チェックいれてませんでした。

>ねろ=我龍院忠太さん
お気になさらないで下さい。どちらにしてもその2つのアドバイスにより
私が貴重な勉強させていただいた事に変わりありませんから。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加