|
■No72775 (pod さん) に返信
> ファイルの絶対パスから親ディレクトリからの相対パス(images\sample.jpg)を取得し、 > コピー先もその相対パスと同じ構造になるようにするにはどのようにすればいいのでしょうか?
なぜそのように、難しく考えるのでしょうか。 C:\Users\MyName\Documents\images の下全てを、D:\Backup にコピーします。 リストを書いてみればすぐにわかりますが、コピー元のファイル パスは、か な ら ず C:\Users\MyName\Documents\Images から始まります。 ですから、この文字列の長さだけ後ろだけ部分文字列を取れば、コピー元からの相対パスになります。
同じように、コピー先には、コピー先の一番上にその相対パスをつなげれば、コピー先のフル パスになります。
相対パス = コピー元フルパス.SubString(コピー元ルートパス.Length + 1); コピー先フルパス = System.IO.Path.Combine(コピー先ルートパス, 相対パス);
robocopy とか、SHFileOperation API とか、Sync Framework とか利用するのも良いかも。
|