Skip to main content
Question

Move file from one location to another

  • January 23, 2020
  • 8 replies
  • 1132 views

Hi folks,

This seems like a fairly simple operation, but for the life of me I can't seem to figure it out. All I need to do is move an existing excel file from one folder to a subfolder. (A subsequent workbench will run, regenerating a new excel spreadsheet in the original location.)

I've read a few of the other answers, but none seem to have what I'm looking for. A few of them mention a 'Move' parameter in the filecopy transformer, but the only writer parameters available to me are 'Overwrite existing file' with options being 'yes' or 'no'. (Upon further investigation, the 'Move' parameter only becomes available as an option when file type 'FileCopy' is selected. If i select MS Excel as the filetype, then the 'Move' option is no longer available.

 

Any ideas?

8 replies

erik_jan
Contributor
Forum|alt.badge.img+17
  • Contributor
  • January 23, 2020

Two ways of doing this in FME:

1) Use the FileCopy writer, with the MOVE option

2) Use the SystemCaller transformer and a DOS command line, using the MOVE command

Hope this helps


ebygomm
Influencer
Forum|alt.badge.img+32
  • Influencer
  • January 23, 2020

If you want to move files, the file type is 'FileCopy', it does not relate to the type of files being moved, but the action itself


  • Author
  • January 24, 2020
ebygomm wrote:

If you want to move files, the file type is 'FileCopy', it does not relate to the type of files being moved, but the action itself

Hi ebygomm, yep, I tried that. Doesn't appear to work - the file is neither moved nor copied. Not quite sure what I'm doing wrong - there's surely a simple soultion, right?


ebygomm
Influencer
Forum|alt.badge.img+32
  • Influencer
  • January 24, 2020
martyrocks wrote:

Hi ebygomm, yep, I tried that. Doesn't appear to work - the file is neither moved nor copied. Not quite sure what I'm doing wrong - there's surely a simple soultion, right?

Have you created the attributes?

  • filecopy_source_dataset
  • filecopy_dest_dataset
  • filecopy_dest_filename

Simple example, use the path reader to get a file location, create attributes so that the file found is moved into a folder in the same location called csv


  • Author
  • January 29, 2020
ebygomm wrote:

Have you created the attributes?

  • filecopy_source_dataset
  • filecopy_dest_dataset
  • filecopy_dest_filename

Simple example, use the path reader to get a file location, create attributes so that the file found is moved into a folder in the same location called csv

Hey thanks ebygomm - I hadn't created those attributes - I didn't even know that was a required part of the process, thanks for that!

 

Nevertheless, I've tried the above and still can't quite seem to nut it out. For example, in Attribute Creator, when I attempt to enter the attribute values (eg @Value(path_windows)) the portion of text within the parentheses appears in red.

 

I've found a workaround for now, but thanks again!

 

Marty


ebygomm
Influencer
Forum|alt.badge.img+32
  • Influencer
  • January 29, 2020
martyrocks wrote:

Hey thanks ebygomm - I hadn't created those attributes - I didn't even know that was a required part of the process, thanks for that!

 

Nevertheless, I've tried the above and still can't quite seem to nut it out. For example, in Attribute Creator, when I attempt to enter the attribute values (eg @Value(path_windows)) the portion of text within the parentheses appears in red.

 

I've found a workaround for now, but thanks again!

 

Marty

Those attributes have to exist, which they do already if using a path reader to read file locations as in the example. If you have the file location of the excel file you want to move in a different attribute, you would need to use that instead. A FilenamePartExtractor may be useful here.

In the example above I'm taking a file "C:\\Users\\egomm\\File.xlsx" and moving it into a subfolder called csv in the same location

So

filecopy_source_dataset has an value of "C:\\Users\\egomm\\File.xlsx"

filecopy_dest_dataset has a value of "C:\\Users\\egomm\\csv"

fielcopy_dest_filename has a value of "File.xlsx"


  • Author
  • February 4, 2020
ebygomm wrote:

Those attributes have to exist, which they do already if using a path reader to read file locations as in the example. If you have the file location of the excel file you want to move in a different attribute, you would need to use that instead. A FilenamePartExtractor may be useful here.

In the example above I'm taking a file "C:\\Users\\egomm\\File.xlsx" and moving it into a subfolder called csv in the same location

So

filecopy_source_dataset has an value of "C:\\Users\\egomm\\File.xlsx"

filecopy_dest_dataset has a value of "C:\\Users\\egomm\\csv"

fielcopy_dest_filename has a value of "File.xlsx"

Thanks Ebygomm.

Still can't quite get the correct reader to appear (what should I be typing on the canvas to bring up the correct reader? Neither 'path reader' or filepath reader' bring up a suitable reader. Best I can get is the 'Directory and filepath' reader, which I assume is the correct one.)

 

Anyways, I've found a workaround, but just wanted to say thanks again for the help. No need to waste more time dumbing things down for me unless you really want to.

 

Cheers,

Marty


Forum|alt.badge.img
  • February 4, 2020

Could even do it as a python startup script as part of the creating of the new excel file

To move file to a folder

import shutil
shutil.move(r"C:\Downloads\source.txt, r"C:\Downloads\DestinationFolder")

Also can move and rename if the full file destination is used

import shutil
shutil.move(r"C:\Downloads\source.txt, r"C:\Downloads\DestinationFolder\newname.txt")

With this method it is easy to add date information (YYYYMMDD_HHMMSS_source.txt)

import shutil
from datetime import datetime

#timestamp in YYYYMMDD_HHMMSS format
now = datetime.now().strftime("%Y%m%d_%H%M%S")
shutil.move(r"C:\Downloads\source.txt, r"C:\Downloads\DestinationFolder\{}_source.txt".format(now))

Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings