none
ファイルのコピーについて RRS feed

  • 質問

  • 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
    End

    End Sub

    2006年7月21日 8:11

すべての返信

  • もちろん、コピーしてリネームすること自体は問題なく可能です。

    ただ、閲覧者には、「PC 番号」 の概念も意味合いもわかりません。
    また、結局のところ、どこで悩んでいるかがわかりません。

    特定の拡張子を持つファイル一覧については、System.IO.Directory.GetFiles メソッド の、パターンマッチが使えるオーバーロードを使用すれば可能です。

    ファイルのコピーは、System.IO.File.Copy メソッド で可能です。
    もちろん、この時にリネームもします。

    現在の日付については、おわかりになられているようなので割愛します。

    ...って、書いてる途中に気付いたのですが、これって、VB6 以前ですね。orz
    リンク先に VB6 もあるので、お許しください。(*_ _)

    2006年7月21日 8:28
  • ありがとうございます!

    PC番号というのは単に社内に複数あるパソコンの識別番号で、それをコピーして作られたファイル名に自動的に反映させたいと思っています。あと日付と。

    コピーしたいのはテキストファイルなのですが、なにかいろいろやってみてもどうしてもコピー出来ないんです

    作成したエグゼファイルと同一フォルダ内にある「A」という名前のテキストファイルを、「日付-A」みたいな名前にコピーしたいのですが、ディレクトリなどのことがよく分かりません。

    ほんとに初心者な質問で申し訳ありませんが、どなかたご教授を・・・。

     

    2006年7月21日 9:55
  • gonenneixiaoさん

    初心者を自認しているのであれば、
    まずは、自分が作ろうとしているものがどのようなものであるかを整理しましょう。

    例えば、


    開発環境
     
    Microsoft Visual Studio 2005
    使用言語
     Visual Basic.NET

    目的
     社内LAN上の複数のPCの特定のフォルダの任意のファイルをコピーする(ファイルの定期バックアップの作成)
    メモ
     ・社内LAN上のPCは識別番号で管理されている
     ・アプリケーションルートに全PCの「識別番号」、「コンピュータ名」、「コピー元フォルダのパス」、「コピー元ファイルの種類」の一覧ファイルを用意する
     ・ファイルのコピー先は"アプリケーションルート/BackUp/[識別番号]_[コンピュータ名]/"のようにPCごとにフォルダを作成する
     ・ファイルをコピーした際にファイル名の先頭に"年(2桁)月(2桁)日(2桁)_"を追加する

     (略)


    のように簡潔でよいので書き出してみてください。
    それには図を描くのもよいでしょう。
    そうして整理する段階で、「これはどうすればいいんだろう?」という疑問を抱くでしょうから、
    それに対する自分なりの解決策を考えましょう。

    コーディングをはじめるのはそれからにしましょう。

    要は、
     自分が知りたい情報を得るためには効果的な質問をしないといけない
    ということです(´;ω;)

    口頭で質疑応答するのと違い、このような形態のコミュニケーションでは時間と手間がかかりますので・・・

    以上、長文駄文失礼

     

    2006年7月21日 23:34
  • goneneixiao さん、こんにちは。

     goneneixiao さんからの引用
    PC番号というのは単に社内に複数あるパソコンの識別番号で、それをコピーして作られたファイル名に自動的に反映させたいと思っています。あと日付と。

    結局のところ、元のファイル名 + PC 番号 + 日付 という情報のファイル名が欲しいということですね。

    コピーしたいのはテキストファイルなのですが、なにかいろいろやってみてもどうしてもコピー出来ないんです

    "何を" "どう" いろいろやってみたのでしょうか?
    私が、goneneixiao さんのすぐ隣にいれば通じますが、実際にはディスプレイを通して 文字だけで コミュニケーションしているので、わからないのですね。

    作成したエグゼファイルと同一フォルダ内にある「A」という名前のテキストファイルを、「日付-A」みたいな名前にコピーしたいのですが、ディレクトリなどのことがよく分かりません。

    App.Path で、実行ファイルと同じ階層のディレクトリが取得できます。

    2006年7月22日 2:19
  • 並人さん、じゃんぬめっとさん

    ありがとうございます!勝手を知らず分かりにくい質問にご回答いただきありがとうございました。

    おかげさまで意図していたものを作動させることが出来ました。ええと、いろいろやってたらなぜか出来ちゃいました(スミマセン、ほんとはきちんと説明したいのですが、それすらもままならない状況です)

    次回からは、ご指摘を参考にして、伝わりやすい質問を心がけたいと思いますので、何卒よろしくお願いします・・・。

    ソースコードを書くのはそれから、という言葉が胸に刺さりました。奥が深いですね。深すぎです。

     

     

    2006年7月24日 3:09