フォルダ移動で移動元のフォルダが消えてしまう。

フォルダ移動について

<やりたいこと>
完了フォルダ内のフォルダのみを移動したい。
完了フォルダはほかのロボットにも紐づけられているので残したい。
が、移動はできたが、移動元の完了フォルダは消えてしまい困っています。
アドバイスお願いします。

フォルダを移動を使用
(対象フォルダのパス) “C:\Users\N280\Desktop\210831 練習元\完了”
(移動先のパス) “C:\Users\N280\Desktop\210831 練習先\21_09”

Hi @1111219

You can use Copy Folder Activity. It will copy the file and folder from source to destination

Regards
Gokul

1 Like

Hi

PATH EXISTSアクティビティを使用してフォルダに移動する前、またはフォルダから移動する前に確認してください。これにより、出力としてブール値が得られ、IFアクティビティで使用してからMOVEアクティビティを使用できます。

Cheers @1111219

1 Like

こんにちは

方法はいくつかあるかと思いますが、移動元対象フォルダ配下のフォルダをすべて取得して
それぞれに対してフォルダ移動させてみればと思います。

以下サンプルです。

Main.xaml (7.6 KB)

Yoichiさん

データありがとうございます。
作成してみたのですが、

Error ERROR 検証エラー 式 “System.IO.Path.Combine(distPath,System.IO.Path.GetFileName(item))” の処理中にコンパイル エラーが発生しました。
Option Strict On で ‘Object’ から ‘String’ への暗黙の型変換はできません。 Main.xaml
とでてしまいまして、、

いただいたデータでデバックすると、
Move Folder: 移動元または移動先のフォルダーがありません。
とでてしまいました。
何か入力しないといけないでしょうか?

Main.xaml (8.6 KB)

こんにちは

こちらは繰り返しアクティビティのTypeArgumentをStringにしてみてください。

Move Folder: 移動元または移動先のフォルダーがありません。
とでてしまいました。

こちらは移動先に対象フォルダが存在しない場合は
Toプロパティを単にdistPathとしてみてください。

こんにちは
ありがとうございます。うまくいきました!!
あともうひとつ質問させていただきたいのですが、

完了フォルダの中に移動先と同じフォルダー名のものがあるとき、
重複してしまって、<フォルダーを移動: フォルダーの移動の例外>
とでてしまいます。

〇〇〇
〇〇〇-1
〇〇〇-2
など数字をつけて移動先に入る設定は可能でしょうか?

こんにちは

上記に対応するにはそれなりのロジックをくむ必要があると思います。
例えば以下のような感じになると思います。

Whileの条件は
System.IO.Directory.Exists(System.IO.Path.Combine(distPath,System.IO.Path.GetFileName(src)))

です。

Yoichiさん
こんにちは

詳しくありがとうございます。
条件分岐のフォルダ移動で、srcと入っているフォルダ移動でエラーになってしまいました。
フォルダーを移動: 移動元または移動先のフォルダーがありません。

お時間ある際回答いただけたら嬉しいです。宜しくお願いします。

こんにちは

すみません、フォルダ名変更のため、フォルダー移動アクティビティを使っていましたが
専用のフォルダー名変更のアクティビティにする必要があるようです。
今回エラーとなっている移動アクティビティを「フォルダーの名前を変更」アクティビティに
差し替えて試してもらっても良いでしょうか?

フォルダーを移動を名前の変更に差し替えました。

フォルダーの名前を変更: [新しい名前] プロパティの値が無効です。
と出てしまいます。Main.xaml (15.8 KB)

こんにちは

ちょっと不具合があるようですので、デザイナーパネル上ではなく、プロパティ欄の新しい名前欄に入力してみてもらえますでしょうか?

こんにちは
一度アクティビティも入れなおして、プロパティ欄から入力しましたが、
フォルダーの名前を変更: [新しい名前] プロパティの値が無効です。
とでてしまいました。。

こんにちは

いただいたxamlでは再現できませんので、フォルダの名前変更アクティビティの代わりに
以下お試しいただけますか?

InvokeMethod(メソッド呼び出し)で
TargetType : System.IO.Directory
MethodName : Move
パラメーターは以下の通り

1 Like

こんにちは

重複対応まで成功しました!ありがとうございます。
メソッドを呼び出しで差し替えたら、重複したファイルは-0と記載がつき移動しました。
ただ、3回目同じファイルを入れたら-1とならずに、前判定が終わらず繰り返しとなっています。

こんにちは

While文中のインクリメント抜けていますね...。Whileの中にAssignでindex = index+1を追加してもらえますか?

1 Like

こんにちは

できました!!
ずっとわからないところで止まっていたので本当に助かりました。
教えていただいた流れも理解できるように勉強します。
ありがとうございました。

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.