3

1 つのファイルを 2 つの個別のファイルに分割するタスクがあります。ただし、その後、ソース ファイルをソース ディレクトリからアーカイブ フォルダに移動する必要があります。これにより、翌日再び取得されることはありません。

ファイル名は「DFG.AE234125.HDS932.H001.U001」のような非常に悪いものですが、外部からそのようなファイルを受け取っているため、名前を変更することはできません。私のループは、User::SelectedFile 変数を使用して反復することにより、すべてのファイルを取得して分割するという意味で正常に機能します。新しく追加された「ファイルをアーカイブに移動」スクリプト タスクに到達すると、ほぼ 1 分間読み込みが停止し、「ファイル名に '/\=,.' のような文字を含めることはできません」のようなエラーが返されます。スクリプトは C# であり、2 つ宣言しています1 つはアーカイブ パス用、もう 1 つはファイル名用の文字列であり、User::SelectedFile 変数を使用します。

私が検討した/試したこと:

  1. ファイル パスの確認 (サーバーの場所にアクセスできないため、C ドライブのテスト ディレクトリを使用しているため、パスは正しいです)
  2. 私はローカルの場所を使用しているため、特に分割用のファイルを取得しているため、許可の問題になることはありません。
  3. これはフラット ファイル接続を使用するスタンドアロン プロセスであるため、サーバー接続の問題はありません。
  4. これにはファイル システム タスクも使用してみましたが、名前に対して同じエラーが発生します。
  5. C# スクリプト自体は、処理されたファイルをアーカイブ フォルダーに移動する必要がある別のパッケージからコピー & ペーストされます。そこで動作します。新しいスクリプトで行ったことは、パスの変数を変更することだけです。
  6. ブレークポイントを追加したところ、スクリプト タスクに到達したときに変数が正しい値を持っていることがわかります。

問題は、プロセスがスクリプト タスクに到達する時点にあるようです。この時点で、分割はすでに正常に行われています。ファイル名の「.」を無視してアーカイブ フォルダに移動できる回避策を教えてもらえますか?

これは Stackoverflow に関する私の最初の投稿であるため、投稿自体に関するフィードバックは大歓迎です。

よろしくお願いします。

知財

4

0 に答える 0