Page 1 of 1
Forum

Welcome to the Tweaking4All community forums!
When participating, please keep the Forum Rules in mind!

Topics for particular software or systems: Start your topic link with the name of the application or system.
For example “MacOS X – Your question“, or “MS Word – Your Tip or Trick“.

Please note that switching to another language when reading a post will not bring you to the same post, in Dutch, as there is no translation for that post!



Share:
Notifications
Clear all

File Copy Over Network

4 Posts
2 Users
0 Likes
1,039 Views
(@tjsah18)
New Member
Joined: 1 year ago
Posts: 2
Topic starter  
I've been trying to make a program that copies files through network.
I don't know why but String source = L"E:\\Outputs\\083\\jpERP.exe";          //==> OK! is working but the other didn't work.
there are no error, not copied. so it's hard to find the problem.
is there any ideas i can solve this problem?
bool __fastcall TdlgMain::ft_Copy_CopyFile(void)
{
   // need username, password ????
   String source = L"\\\\rs-fs1\\jpDataXE\\jpERP.exe";     // ==> No error, Not copied
//   String source = L"E:\\Outputs\\083\\jpERP.exe";          //==> OK!
//   String source = L"Z:\\jpERP.exe";          //==> Not copied !
   String destin = L"C:\\RS Programs\\jpERP.exe";
   int result;


   if(FileExists(source))
   {
       ShowMessage(L"Found: " + source);
       try{
           result = CopyFile(source.w_str(), destin.w_str(), true);
           ShowMessage(GetLastError());
           if(result)
               ShowMessage(L"Success");
           else
               ShowMessage(L"Failed");
       }
       catch(...){
           ShowMessage(L"CopyFile  - error");
       }
   }
   else{
       ShowMessage(L"No file found...");
       return false;
   }


   return true;
}

ReplyQuote
Topic Tags
 Hans
(@hans)
Famed Member Admin
Joined: 9 years ago
Posts: 2236
 

Hi Tjsah18,

what language and development environment are you working with? (looks like a C variant, C# maybe??)
I presume you're running something under Windows (drive letters are only used under Windows).

There can be a lot of reasons why this doesn't work.
Does the server need some kind of authentication?
As far as I remember, most do need some sort of authentication - to avoid this, map the network share as a drive (I could be wrong of course).

Note: I've ran into the same issue with different programming languages.

p.s. I created a new sub-forum for questions like yours, so I moved it there since that seemed more appropriate.


ReplyQuote
(@tjsah18)
New Member
Joined: 1 year ago
Posts: 2
Topic starter  

@hans Hello Hans,

Thank you for your replying!

i'm working with

Language : c++

OS : window 10

development environment : Rad studio

we have a network drive and need an authentication.

I'm trying to copy the file from network drives to local drive.

 thank you,

 


ReplyQuote
 Hans
(@hans)
Famed Member Admin
Joined: 9 years ago
Posts: 2236
 

I very much suspect that authorization fails, and that's why I doesn't work.
As I understand, you cannot add username/password in the URI (under Windows), so that won't be a solution either.

I haven't done any C++/C# programming under Windows in the passed years. So I can only ask our friend Google.

I did find this post, maybe it helps.

As I understand this sets your current "user" to the user you need to be able to access the file (credentials not the same as your current user account):

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);

WindowsIdentity idnt = new WindowsIdentity(username, password);

WindowsImpersonationContext context = idnt.Impersonate();

File.Copy(@"\\192.100.0.2\temp", @"D:\WorkDir\TempDir\test.txt", true);

context.Undo();

ReplyQuote
Share: