Re: Moving Files over the network through a program

Tech-Archive recommends: Fix windows errors by optimizing your registry



Thanks for the response. You're right about MoveFileEx's limitation to the
same drive.

I posted here as I'm developing this on an xpe system which will be
headless...I thought folks here would have attempted similar things at some
point or another.


"KM" <konstmor@xxxxxxxxxxxxxxxx> wrote in message
news:uabstQdoFHA.3912@xxxxxxxxxxxxxxxxxxxxxxx
>
> RussR,
>
> You should probably post this question to a Win32 dev newsgroup.
>
> But anyway.. MoveFile[Ex] cannot move a directory to a different file
> system or volume. When moving a directory, the destination must be on the
> same drive.
>
> You should use some other APIs to accomplish that. E.g., SHFileOperation
> (shell32.dll must be in your XPe image if you further want to use the code
> there).
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shfileoperation.asp
>
> --
> Regards,
> KM
>
>
>> Hi,
>>
>> What am I trying to achieve is to move a directory (or a set of files
>> using
>> wildcards) from one computer on the network to another using a C++
>> program The systems are running WindowsXP Professional. Permissions on
>> each directory is set to FULL for Everyone.
>>
>> So for example, \\computerA runs a code that will move the directory,
>> \\computerB\\apps to c:\apps, where c:\apps is on computerA.
>>
>> Here's where I got the line of code that I'm using to move files.
>> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/movefileex.asp
>>
>> void main() {
>>
>> //here's the line of code that does the moving
>> int result= MoveFileEx("\\\\computerB\\apps","c:\\apps",
>> MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING
>> MOVEFILE_WRITE_THROUGH);
>>
>> //this is to print out the error message when it fails
>> LPVOID lpMsgBuf;
>> FormatMessage(
>> FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
>> NULL,
>> GetLastError(),
>> MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
>> (LPTSTR) &lpMsgBuf,
>> 0,
>> NULL
>> );
>> printf("%s\n",lpMsgBuf);
>> // Free the buffer.
>> LocalFree( lpMsgBuf );
>> }
>>
>> I get an error message usually saying access denied. Permissions are all
>> set full for everyone, so I'm stumped. If I change it to copy from one
>> directory on my computer to another directory on my computer, it only
>> works
>> if the target directory doesn't already exist. If it does exist, I get
>> an
>> access denied error....why? I've set all the MOVEFILE flags to avoid
>> this.
>>
>> Thanks,
>> RussR
>
>


.