質問者
ファイルのコピーについて

質問
-
VBの初心者です。
実行すると自動的にファイルをコピーするようなものを作りたいと思ってます。同一フォルダ内にある特定の拡張子のファイルをコピーして、その日の日付をファイル名の頭に付ける・・・。そんな事が可能でしょうか?
アドバイス等なんでも結構ですので、よろしくお願いします!
ちなみに↓のような感じで日付と入力されたPC番号(M,D,PC)をファイル名に反映させたいと思ってるのですが・・・可能でしょうか?
Private Sub Command2_Click()
D = Day(Now)
M = Month(Now)Nyuryoku:
Msg = "PC番号を入力して下さい"
PC = InputBox(Msg)
Msg = "PC番号を確認して下さい" & " " & PC
X = MsgBox(Msg, 4)
If X = 7 Then GoTo Nyuryoku
EndEnd Sub
すべての返信
-
もちろん、コピーしてリネームすること自体は問題なく可能です。
ただ、閲覧者には、「PC 番号」 の概念も意味合いもわかりません。
また、結局のところ、どこで悩んでいるかがわかりません。特定の拡張子を持つファイル一覧については、System.IO.Directory.GetFiles メソッド の、パターンマッチが使えるオーバーロードを使用すれば可能です。
ファイルのコピーは、System.IO.File.Copy メソッド で可能です。
もちろん、この時にリネームもします。現在の日付については、おわかりになられているようなので割愛します。
...って、書いてる途中に気付いたのですが、これって、VB6 以前ですね。orz
リンク先に VB6 もあるので、お許しください。(*_ _) -
gonenneixiaoさん
初心者を自認しているのであれば、
まずは、自分が作ろうとしているものがどのようなものであるかを整理しましょう。
例えば、
開発環境
Microsoft Visual Studio 2005
使用言語
Visual Basic.NET
目的
社内LAN上の複数のPCの特定のフォルダの任意のファイルをコピーする(ファイルの定期バックアップの作成)
メモ
・社内LAN上のPCは識別番号で管理されている
・アプリケーションルートに全PCの「識別番号」、「コンピュータ名」、「コピー元フォルダのパス」、「コピー元ファイルの種類」の一覧ファイルを用意する
・ファイルのコピー先は"アプリケーションルート/BackUp/[識別番号]_[コンピュータ名]/"のようにPCごとにフォルダを作成する
・ファイルをコピーした際にファイル名の先頭に"年(2桁)月(2桁)日(2桁)_"を追加する(略)
のように簡潔でよいので書き出してみてください。
それには図を描くのもよいでしょう。
そうして整理する段階で、「これはどうすればいいんだろう?」という疑問を抱くでしょうから、
それに対する自分なりの解決策を考えましょう。コーディングをはじめるのはそれからにしましょう。
要は、
自分が知りたい情報を得るためには効果的な質問をしないといけない
ということです(´;ω;)
口頭で質疑応答するのと違い、このような形態のコミュニケーションでは時間と手間がかかりますので・・・
以上、長文駄文失礼 -
goneneixiao さん、こんにちは。
goneneixiao さんからの引用 PC番号というのは単に社内に複数あるパソコンの識別番号で、それをコピーして作られたファイル名に自動的に反映させたいと思っています。あと日付と。 結局のところ、元のファイル名 + PC 番号 + 日付 という情報のファイル名が欲しいということですね。
コピーしたいのはテキストファイルなのですが、なにかいろいろやってみてもどうしてもコピー出来ないんです "何を" "どう" いろいろやってみたのでしょうか?
私が、goneneixiao さんのすぐ隣にいれば通じますが、実際にはディスプレイを通して 文字だけで コミュニケーションしているので、わからないのですね。作成したエグゼファイルと同一フォルダ内にある「A」という名前のテキストファイルを、「日付-A」みたいな名前にコピーしたいのですが、ディレクトリなどのことがよく分かりません。 App.Path で、実行ファイルと同じ階層のディレクトリが取得できます。