comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Copy file to all subfolders
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Copy file to all subfolders [message #90912] Tue, 12 May 2015 06:56 Go to next message
Kai Heckel is currently offline  Kai Heckel
Messages: 51
Registered: April 2015
Member
Hey there!

I'd like to copy a file to all contained subfolders.
The structure looks something like this:

MAIN_FOLDER (contains the file that is supposed to be copied)
:
:
- Subfolder1
- Subfolder2
- Subfolder3

I thought about using a FOR-loop but that didn't work out yet.

Would really appreciate your help here!

Thanks
Re: Copy file to all subfolders [message #90913 is a reply to message #90912] Tue, 12 May 2015 07:29 Go to previous messageGo to next message
Mats Löfdahl is currently offline  Mats Löfdahl
Messages: 263
Registered: January 2012
Senior Member
Den tisdag 12 maj 2015 kl. 15:56:27 UTC+2 skrev Kai Heckel:
> Hey there!
>
> I'd like to copy a file to all contained subfolders.
> The structure looks something like this:
>
> MAIN_FOLDER (contains the file that is supposed to be copied)
> :
> :
> - Subfolder1
> - Subfolder2
> - Subfolder3
>
> I thought about using a FOR-loop but that didn't work out yet.
>
> Would really appreciate your help here!
>
> Thanks

You could use something like

subfolders=file_search('MAIN_FOLDER/Subfolder?',count=Nfolde rs)
for i=0,Nfolders-1 do spawn,'cp '+filename+' '+subfolders[i]
Re: Copy file to all subfolders [message #90914 is a reply to message #90913] Tue, 12 May 2015 07:33 Go to previous messageGo to next message
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
Mats Löfdahl writes:

> You could use something like
>
> subfolders=file_search('MAIN_FOLDER/Subfolder?',count=Nfolde rs)
> for i=0,Nfolders-1 do spawn,'cp '+filename+' '+subfolders[i]

Or, for an IDL solution, FILE_COPY. ;-)

Cheers,

David
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.idlcoyote.com/
Sepore ma de ni thue. ("Perhaps thou speakest truth.")
Re: Copy file to all subfolders [message #90915 is a reply to message #90912] Tue, 12 May 2015 07:37 Go to previous messageGo to next message
Kai Heckel is currently offline  Kai Heckel
Messages: 51
Registered: April 2015
Member
Am Dienstag, 12. Mai 2015 15:56:27 UTC+2 schrieb Kai Heckel:
> Hey there!
>
> I'd like to copy a file to all contained subfolders.
> The structure looks something like this:
>
> MAIN_FOLDER (contains the file that is supposed to be copied)
> :
> :
> - Subfolder1
> - Subfolder2
> - Subfolder3
>
> I thought about using a FOR-loop but that didn't work out yet.
>
> Would really appreciate your help here!
>
> Thanks


Yep I tried the FILE_COPY function but it didn't work...
e.g. I tried this line:

FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs

-> file_dirs is a variable that contains all subfolders
Re: Copy file to all subfolders [message #90918 is a reply to message #90914] Tue, 12 May 2015 07:48 Go to previous messageGo to next message
Mats Löfdahl is currently offline  Mats Löfdahl
Messages: 263
Registered: January 2012
Senior Member
Den tisdag 12 maj 2015 kl. 16:33:13 UTC+2 skrev David Fanning:
> Mats Löfdahl writes:
>
>> You could use something like
>>
>> subfolders=file_search('MAIN_FOLDER/Subfolder?',count=Nfolde rs)
>> for i=0,Nfolders-1 do spawn,'cp '+filename+' '+subfolders[i]
>
> Or, for an IDL solution, FILE_COPY. ;-)

Who said anything about IDL? :o)
Re: Copy file to all subfolders [message #90919 is a reply to message #90912] Tue, 12 May 2015 07:54 Go to previous messageGo to next message
Kai Heckel is currently offline  Kai Heckel
Messages: 51
Registered: April 2015
Member
Am Dienstag, 12. Mai 2015 15:56:27 UTC+2 schrieb Kai Heckel:
> Hey there!
>
> I'd like to copy a file to all contained subfolders.
> The structure looks something like this:
>
> MAIN_FOLDER (contains the file that is supposed to be copied)
> :
> :
> - Subfolder1
> - Subfolder2
> - Subfolder3
>
> I thought about using a FOR-loop but that didn't work out yet.
>
> Would really appreciate your help here!
>
> Thanks

Thought this was an IDL forum :D

But anyway thanks Mats!
Re: Copy file to all subfolders [message #90920 is a reply to message #90915] Tue, 12 May 2015 07:57 Go to previous messageGo to next message
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
Kai Heckel writes:

> Yep I tried the FILE_COPY function but it didn't work...
> e.g. I tried this line:
>
> FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs
>
> -> file_dirs is a variable that contains all subfolders

Yeah, the documentation is probably leading you astray. I'd use it in a
loop. Mats will show you how now that he is in the right frame of
reference. ;-)

Cheers,

David
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.idlcoyote.com/
Sepore ma de ni thue. ("Perhaps thou speakest truth.")
Re: Copy file to all subfolders [message #90923 is a reply to message #90920] Wed, 13 May 2015 00:04 Go to previous messageGo to next message
Kai Heckel is currently offline  Kai Heckel
Messages: 51
Registered: April 2015
Member
Am Dienstag, 12. Mai 2015 16:57:05 UTC+2 schrieb David Fanning:
> Kai Heckel writes:
>
>> Yep I tried the FILE_COPY function but it didn't work...
>> e.g. I tried this line:
>>
>> FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs
>>
>> -> file_dirs is a variable that contains all subfolders
>
> Yeah, the documentation is probably leading you astray. I'd use it in a
> loop. Mats will show you how now that he is in the right frame of
> reference. ;-)
>
> Cheers,
>
> David
> --
> David Fanning, Ph.D.
> Fanning Software Consulting, Inc.
> Coyote's Guide to IDL Programming: http://www.idlcoyote.com/
> Sepore ma de ni thue. ("Perhaps thou speakest truth.")

So I tried this:

FOR i=0, N_ELEMENTS(file_dirs)-1 do
spawn, 'cp ', 'myfile', file_dirs[i]
ENDFOR

...somehow this won't work. This maybe an absolute newbie thing but I acutally am new to IDL and programming in general. ;)
Re: Copy file to all subfolders [message #90925 is a reply to message #90923] Wed, 13 May 2015 01:22 Go to previous messageGo to next message
Mats Löfdahl is currently offline  Mats Löfdahl
Messages: 263
Registered: January 2012
Senior Member
Den onsdag 13 maj 2015 kl. 09:04:18 UTC+2 skrev Kai Heckel:
> Am Dienstag, 12. Mai 2015 16:57:05 UTC+2 schrieb David Fanning:
>> Kai Heckel writes:
>>
>>> Yep I tried the FILE_COPY function but it didn't work...
>>> e.g. I tried this line:
>>>
>>> FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs
>>>
>>> -> file_dirs is a variable that contains all subfolders
>>
>> Yeah, the documentation is probably leading you astray. I'd use it in a
>> loop. Mats will show you how now that he is in the right frame of
>> reference. ;-)
>>
>> Cheers,
>>
>> David
>> --
>> David Fanning, Ph.D.
>> Fanning Software Consulting, Inc.
>> Coyote's Guide to IDL Programming: http://www.idlcoyote.com/
>> Sepore ma de ni thue. ("Perhaps thou speakest truth.")
>
> So I tried this:
>
> FOR i=0, N_ELEMENTS(file_dirs)-1 do
> spawn, 'cp ', 'myfile', file_dirs[i]
> ENDFOR
>
> ...somehow this won't work. This maybe an absolute newbie thing but I acutally am new to IDL and programming in general. ;)

The spawn command wants a single string so you should concatenate the parts of the command you want to execute. Also, if myfile is a variable containing the file name, it should not be in quotes.

Doing something like this in the loop makes it easier to see that you get the command string right:

cmd= 'cp ' + myfile + ' ' + file_dirs[i]
print, cmd
spawn,cmd
Re: Copy file to all subfolders [message #90926 is a reply to message #90925] Wed, 13 May 2015 02:19 Go to previous messageGo to next message
Kai Heckel is currently offline  Kai Heckel
Messages: 51
Registered: April 2015
Member
Am Mittwoch, 13. Mai 2015 10:22:12 UTC+2 schrieb Mats Löfdahl:
> Den onsdag 13 maj 2015 kl. 09:04:18 UTC+2 skrev Kai Heckel:
>> Am Dienstag, 12. Mai 2015 16:57:05 UTC+2 schrieb David Fanning:
>>> Kai Heckel writes:
>>>
>>>> Yep I tried the FILE_COPY function but it didn't work...
>>>> e.g. I tried this line:
>>>>
>>>> FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs
>>>>
>>>> -> file_dirs is a variable that contains all subfolders
>>>
>>> Yeah, the documentation is probably leading you astray. I'd use it in a
>>> loop. Mats will show you how now that he is in the right frame of
>>> reference. ;-)
>>>
>>> Cheers,
>>>
>>> David
>>> --
>>> David Fanning, Ph.D.
>>> Fanning Software Consulting, Inc.
>>> Coyote's Guide to IDL Programming: http://www.idlcoyote.com/
>>> Sepore ma de ni thue. ("Perhaps thou speakest truth.")
>>
>> So I tried this:
>>
>> FOR i=0, N_ELEMENTS(file_dirs)-1 do
>> spawn, 'cp ', 'myfile', file_dirs[i]
>> ENDFOR
>>
>> ...somehow this won't work. This maybe an absolute newbie thing but I acutally am new to IDL and programming in general. ;)
>
> The spawn command wants a single string so you should concatenate the parts of the command you want to execute. Also, if myfile is a variable containing the file name, it should not be in quotes.
>
> Doing something like this in the loop makes it easier to see that you get the command string right:
>
> cmd= 'cp ' + myfile + ' ' + file_dirs[i]
> print, cmd
> spawn,cmd

Using that and other structures, IDL always prints that "FILE_DIRS with K is out of range.". "file_dirs" includes the full path to every folder that I want the data to be copied to. Still something wrong with the code?

file_dirs = FILE_SEARCH(mydir, /TEST_DIRECTORY)
myfile = DIALOG_PICKFILE(Title='Select myfile: ')
FOR i=0, N_ELEMENTS(file_dirs)-1 do begin
cmd = 'cp ' + myfile + '' + file_dirs[k]
print, cmd
spawn, cmd
ENDFOR
Re: Copy file to all subfolders [message #90927 is a reply to message #90926] Wed, 13 May 2015 02:29 Go to previous messageGo to next message
Mats Löfdahl is currently offline  Mats Löfdahl
Messages: 263
Registered: January 2012
Senior Member
Den onsdag 13 maj 2015 kl. 11:20:00 UTC+2 skrev Kai Heckel:
> Am Mittwoch, 13. Mai 2015 10:22:12 UTC+2 schrieb Mats Löfdahl:
>> Den onsdag 13 maj 2015 kl. 09:04:18 UTC+2 skrev Kai Heckel:
>>> Am Dienstag, 12. Mai 2015 16:57:05 UTC+2 schrieb David Fanning:
>>>> Kai Heckel writes:
>>>>
>>>> > Yep I tried the FILE_COPY function but it didn't work...
>>>> > e.g. I tried this line:
>>>> >
>>>> > FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs
>>>> >
>>>> > -> file_dirs is a variable that contains all subfolders
>>>>
>>>> Yeah, the documentation is probably leading you astray. I'd use it in a
>>>> loop. Mats will show you how now that he is in the right frame of
>>>> reference. ;-)
>>>>
>>>> Cheers,
>>>>
>>>> David
>>>> --
>>>> David Fanning, Ph.D.
>>>> Fanning Software Consulting, Inc.
>>>> Coyote's Guide to IDL Programming: http://www.idlcoyote.com/
>>>> Sepore ma de ni thue. ("Perhaps thou speakest truth.")
>>>
>>> So I tried this:
>>>
>>> FOR i=0, N_ELEMENTS(file_dirs)-1 do
>>> spawn, 'cp ', 'myfile', file_dirs[i]
>>> ENDFOR
>>>
>>> ...somehow this won't work. This maybe an absolute newbie thing but I acutally am new to IDL and programming in general. ;)
>>
>> The spawn command wants a single string so you should concatenate the parts of the command you want to execute. Also, if myfile is a variable containing the file name, it should not be in quotes.
>>
>> Doing something like this in the loop makes it easier to see that you get the command string right:
>>
>> cmd= 'cp ' + myfile + ' ' + file_dirs[i]
>> print, cmd
>> spawn,cmd
>
> Using that and other structures, IDL always prints that "FILE_DIRS with K is out of range.". "file_dirs" includes the full path to every folder that I want the data to be copied to. Still something wrong with the code?
>
> file_dirs = FILE_SEARCH(mydir, /TEST_DIRECTORY)
> myfile = DIALOG_PICKFILE(Title='Select myfile: ')
> FOR i=0, N_ELEMENTS(file_dirs)-1 do begin
> cmd = 'cp ' + myfile + '' + file_dirs[k]
> print, cmd
> spawn, cmd
> ENDFOR

You may want to use the loop variable when indexing file_dirs, rather than the undefined (?) variable k.
Re: Copy file to all subfolders [message #90928 is a reply to message #90927] Wed, 13 May 2015 03:30 Go to previous messageGo to next message
Kai Heckel is currently offline  Kai Heckel
Messages: 51
Registered: April 2015
Member
Am Mittwoch, 13. Mai 2015 11:29:56 UTC+2 schrieb Mats Löfdahl:
> Den onsdag 13 maj 2015 kl. 11:20:00 UTC+2 skrev Kai Heckel:
>> Am Mittwoch, 13. Mai 2015 10:22:12 UTC+2 schrieb Mats Löfdahl:
>>> Den onsdag 13 maj 2015 kl. 09:04:18 UTC+2 skrev Kai Heckel:
>>>> Am Dienstag, 12. Mai 2015 16:57:05 UTC+2 schrieb David Fanning:
>>>> > Kai Heckel writes:
>>>> >
>>>> > > Yep I tried the FILE_COPY function but it didn't work...
>>>> > > e.g. I tried this line:
>>>> > >
>>>> > > FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs
>>>> > >
>>>> > > -> file_dirs is a variable that contains all subfolders
>>>> >
>>>> > Yeah, the documentation is probably leading you astray. I'd use it in a
>>>> > loop. Mats will show you how now that he is in the right frame of
>>>> > reference. ;-)
>>>> >
>>>> > Cheers,
>>>> >
>>>> > David
>>>> > --
>>>> > David Fanning, Ph.D.
>>>> > Fanning Software Consulting, Inc.
>>>> > Coyote's Guide to IDL Programming: http://www.idlcoyote.com/
>>>> > Sepore ma de ni thue. ("Perhaps thou speakest truth.")
>>>>
>>>> So I tried this:
>>>>
>>>> FOR i=0, N_ELEMENTS(file_dirs)-1 do
>>>> spawn, 'cp ', 'myfile', file_dirs[i]
>>>> ENDFOR
>>>>
>>>> ...somehow this won't work. This maybe an absolute newbie thing but I acutally am new to IDL and programming in general. ;)
>>>
>>> The spawn command wants a single string so you should concatenate the parts of the command you want to execute. Also, if myfile is a variable containing the file name, it should not be in quotes.
>>>
>>> Doing something like this in the loop makes it easier to see that you get the command string right:
>>>
>>> cmd= 'cp ' + myfile + ' ' + file_dirs[i]
>>> print, cmd
>>> spawn,cmd
>>
>> Using that and other structures, IDL always prints that "FILE_DIRS with K is out of range.". "file_dirs" includes the full path to every folder that I want the data to be copied to. Still something wrong with the code?
>>
>> file_dirs = FILE_SEARCH(mydir, /TEST_DIRECTORY)
>> myfile = DIALOG_PICKFILE(Title='Select myfile: ')
>> FOR i=0, N_ELEMENTS(file_dirs)-1 do begin
>> cmd = 'cp ' + myfile + '' + file_dirs[k]
>> print, cmd
>> spawn, cmd
>> ENDFOR
>
> You may want to use the loop variable when indexing file_dirs, rather than the undefined (?) variable k.

Oh I forgot to change that but if I do, it doesn't change anything...
Re: Copy file to all subfolders [message #90929 is a reply to message #90928] Wed, 13 May 2015 03:58 Go to previous message
Kai Heckel is currently offline  Kai Heckel
Messages: 51
Registered: April 2015
Member
Am Mittwoch, 13. Mai 2015 12:30:59 UTC+2 schrieb Kai Heckel:
> Am Mittwoch, 13. Mai 2015 11:29:56 UTC+2 schrieb Mats Löfdahl:
>> Den onsdag 13 maj 2015 kl. 11:20:00 UTC+2 skrev Kai Heckel:
>>> Am Mittwoch, 13. Mai 2015 10:22:12 UTC+2 schrieb Mats Löfdahl:
>>>> Den onsdag 13 maj 2015 kl. 09:04:18 UTC+2 skrev Kai Heckel:
>>>> > Am Dienstag, 12. Mai 2015 16:57:05 UTC+2 schrieb David Fanning:
>>>> > > Kai Heckel writes:
>>>> > >
>>>> > > > Yep I tried the FILE_COPY function but it didn't work...
>>>> > > > e.g. I tried this line:
>>>> > > >
>>>> > > > FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs
>>>> > > >
>>>> > > > -> file_dirs is a variable that contains all subfolders
>>>> > >
>>>> > > Yeah, the documentation is probably leading you astray. I'd use it in a
>>>> > > loop. Mats will show you how now that he is in the right frame of
>>>> > > reference. ;-)
>>>> > >
>>>> > > Cheers,
>>>> > >
>>>> > > David
>>>> > > --
>>>> > > David Fanning, Ph.D.
>>>> > > Fanning Software Consulting, Inc.
>>>> > > Coyote's Guide to IDL Programming: http://www.idlcoyote.com/
>>>> > > Sepore ma de ni thue. ("Perhaps thou speakest truth.")
>>>> >
>>>> > So I tried this:
>>>> >
>>>> > FOR i=0, N_ELEMENTS(file_dirs)-1 do
>>>> > spawn, 'cp ', 'myfile', file_dirs[i]
>>>> > ENDFOR
>>>> >
>>>> > ...somehow this won't work. This maybe an absolute newbie thing but I acutally am new to IDL and programming in general. ;)
>>>>
>>>> The spawn command wants a single string so you should concatenate the parts of the command you want to execute. Also, if myfile is a variable containing the file name, it should not be in quotes.
>>>>
>>>> Doing something like this in the loop makes it easier to see that you get the command string right:
>>>>
>>>> cmd= 'cp ' + myfile + ' ' + file_dirs[i]
>>>> print, cmd
>>>> spawn,cmd
>>>
>>> Using that and other structures, IDL always prints that "FILE_DIRS with K is out of range.". "file_dirs" includes the full path to every folder that I want the data to be copied to. Still something wrong with the code?
>>>
>>> file_dirs = FILE_SEARCH(mydir, /TEST_DIRECTORY)
>>> myfile = DIALOG_PICKFILE(Title='Select myfile: ')
>>> FOR i=0, N_ELEMENTS(file_dirs)-1 do begin
>>> cmd = 'cp ' + myfile + '' + file_dirs[k]
>>> print, cmd
>>> spawn, cmd
>>> ENDFOR
>>
>> You may want to use the loop variable when indexing file_dirs, rather than the undefined (?) variable k.
>
> Oh I forgot to change that but if I do, it doesn't change anything...

Ok everyone, I got it....
That's a stupid one ;)

I executed those lines by marking it and executing it with "Shift + F8". After compiling it it worked out well.

Thanks for your help anyway!
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Plot southern coordinates in northen map
Next Topic: % Program caused arithmetic error: Floating illegal operand

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 15:13:57 PDT 2025

Total time taken to generate the page: 0.00785 seconds