C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: VB.NETのCopyDirectoryについて


(過去ログ 59 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■33742 / inTopicNo.1)  VB.NETのCopyDirectoryについて
  
□投稿者/ モル (1回)-(2009/03/09(Mon) 03:46:32)

分類:[VB.NET/VB2005 以降] 

いつもこのサイトには大変お世話になってします。
少し分からないことがあったので質問させてもらいます。

使用ソフトMicrosoft Visual Basic 2008 Express Editionにて


たとえば

TextBox1に C:\sample1
TextBox2に C:\sample2\sample3

というようにプロパティかプログラムを動かしてから入力して

Dim text1 As String = Me.TextBox1.Text
Dim text2 As String = Me.TextBox2.Text
CopyDirectory(text1, text2, True)

これで動かしてみると普通に動作します


ここでこれを応用して、プログラムのある場所からコピーさせたかったので

Dim text1 As String = System.IO.Path.Combine(Application.StartupPath, "Sample4")
Dim text2 As String = Me.TextBox2.Text
CopyDirectory(text1, text2, True)


という形にかえてみると、パスがあっていてもエラーを吐きます
自分なりに原因を考えていろいろ試しました結果
Path.Combineでパスを作ってしまうと動作しなくなるみたいなことが分かりましたが
原因はサッパリ分かりませんでした



原因と、その解決策をご存知の方がいらしたら、ご教示お願いします



引用返信 編集キー/
■33744 / inTopicNo.2)  Re[1]: VB.NETのCopyDirectoryについて
□投稿者/ επιστημη (1806回)-(2009/03/09(Mon) 08:43:12)
επιστημη さんの Web サイト
> という形にかえてみると、パスがあっていてもエラーを吐きます

どんなエラーですか? ↓にある例外のどれかですか?
http://msdn.microsoft.com/ja-jp/library/2swy9y5e.aspx

引用返信 編集キー/
■33746 / inTopicNo.3)  Re[1]: VB.NETのCopyDirectoryについて
□投稿者/ よねKEN (288回)-(2009/03/09(Mon) 09:25:12)
2009/03/09(Mon) 09:28:32 編集(投稿者)

επιστημηさんのご指摘の内容をまず確認していただくとして、それ以外の部分にコメントします。

#ところで、使用されているCopyDirectoryは、
#My.Computer.FileSystem.CopyDirectory メソッド
#であってますか??自作のメソッドだったりはしませんよね。

> ここでこれを応用して、プログラムのある場所からコピーさせたかったので
>
> Dim text1 As String = System.IO.Path.Combine(Application.StartupPath, "Sample4")
> Dim text2 As String = Me.TextBox2.Text
> CopyDirectory(text1, text2, True)
>
> という形にかえてみると、パスがあっていてもエラーを吐きます

パスがあっていることの確認は目視以外の方法で確認していますか?

例えば以下のような方法で確認できます。
「"Dim text1 As String = …"の行の次にでも

Debug.WriteLine(text1)

と書いておいて、出力されたパスをコピーし、
それをエクスプローラで開く or 「ファイル名を指定して実行」に入力して実行。」

> 自分なりに原因を考えていろいろ試しました結果
> Path.Combineでパスを作ってしまうと動作しなくなるみたいなことが分かりましたが
> 原因はサッパリ分かりませんでした

Path.Combineが原因ということはたぶんないと思います。
最初の例でうまく行ったというパス
「C:\sample1」
に対して、System.IO.Path.Combine("C:\", "sample1")を実行した場合だと
うまく行くのではないでしょうか。

引用返信 編集キー/
■33784 / inTopicNo.4)  Re[2]: VB.NETのCopyDirectoryについて
□投稿者/ モル (2回)-(2009/03/09(Mon) 20:18:21)
επιστημηさん よねKENさん 返信ありがとうございます。

大変もうしわけないんですが、こちらの
http://jeanne.wankuma.com/tips/vb.net/directory/copy.html
でメソッド化されたものを使ったという旨を記入し忘れていました

>#ところで、使用されているCopyDirectoryは、
>#My.Computer.FileSystem.CopyDirectory メソッド
>#であってますか??自作のメソッドだったりはしませんよね。

まさにそのとおりです;;


そしてさきほど再びやってみたところ、Path.Combineを使っても普通にコピーできました

どうやら昨日の書いていた時点で、コピー元とコピー先の順序が逆になっていたっぽいです
本当にくだらないミスでもうしわけありませんでした。。。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -