• 締切済み

別のフォルダにコピー

Visual Basic Express 2012 テキストボックスにファイルをD&Dして、絶対パスを取得して 名前を変更してコピーしています。 D:\test\aaa.txt → D:\test\aaa_abc.txt "cmd /c copy " & filen1 & ".txt " & filen1 & "_abc.txt" filen1は拡張子なしの絶対パスになっています。 末尾に文字を追加してコピーしているのですが、パスの途中に 文字を追加したいです。 D:\test\aaa.txt → D:\test\old\aaa_abc.txt 上記のように別のフォルダにコピーするにはどうしたら良いでしょうか?

みんなの回答

回答No.2

・パスからディレクトリ名を得る Path.GetDirectoryName http://msdn.microsoft.com/ja-jp/library/vstudio/system.io.path.getdirectoryname.aspx ・パスからファイル名を得る Path.GetFileName http://msdn.microsoft.com/ja-jp/library/vstudio/system.io.path.getfilename.aspx ・パスからファイル名 (拡張子抜き) を得る Path.GetFileNameWithoutExtension http://msdn.microsoft.com/ja-jp/library/vstudio/system.io.path.getfilenamewithoutextension.aspx ・パスから拡張子を得る Path.GetExtension http://msdn.microsoft.com/ja-jp/library/vstudio/system.io.path.getextension.aspx ・パスの要素を結合する Path.Combine http://msdn.microsoft.com/ja-jp/library/vstudio/system.io.path.combine.aspx このあたりのメソッドを使ってファイル名を組み立てて,File.Copyメソッドでファイルをコピーします。 http://msdn.microsoft.com/ja-jp/library/vstudio/system.io.file.copy.aspx

yurielna
質問者

補足

ありがとうございます。 リンク先にある例を見て試してもうまく行かなかったのですが、 下記とは結果違うのでしょうか? http://homepage1.nifty.com/rucio/main/dotnet/Samples/dnSampleGetFileName.htm

すると、全ての回答が全文表示されます。
回答No.1

こんにちは。 フルパスで書かれたファイル名にフォルダ名を追加したいならば、 1.フルパス名を、パス名とファイル名に分離する。   filen1 = D:\test\aaa → filen_p = D:\test\ , filen_f = aaa 2.パス名に新たなフォルダ名を追加する。   filen_p=filen_p & "old\" 3.パス名とファイル名を結合して元に戻す。   filen1 = filen_p & filen_f という操作をすればよいです。 ファイル名を分離する方法は、初歩的な方法ならばinstrrev関数で最後尾の"\"の位置を検索して、Mid関数で切り出す方法があります。Pathクラスを使うなら、GetFullPath 関数とGetFileName 関数でできます。 D:\test\old\ フォルダが生成されていない可能性があるならば、事前に存在を確認して、無い場合はフォルダを作成してからcopyを実行すればよいです。

yurielna
質問者

お礼

ありがとうございます。 教えて頂いた方法で作ってみます。

すると、全ての回答が全文表示されます。

関連するQ&A

このQ&Aのポイント
  • iPhone6をパナソニックビエラにミラーリングしたいが、接続がうまくいかないため、解決策を探っている。
  • ミラーリング開始ボタンをタップすると、接続待機画面が表示され続け、ビエラが認識しない問題が発生中。
  • iPhone側の設定だけでなく、ビエラの設定にも何らかの手続きが必要かもしれないと考えられている。
回答を見る

専門家に質問してみよう