26. februar 2009 - 13:09
Der er
3 kommentarer og
1 løsning
c#.net kopiere filere fra en server til en anden
Hej,
Jeg er ved at lave et job der skal kopiere filer (jpeg's) fra en server-mapper til en anden. Mit problem er at der skal logges ind på serverne for at få adgang til mapperne. Kan jeg sætte nogle login credetials i koden (lidt ala som når man benyter FtpWebRequest)?
Indtil videre har jeg blot følgende:
private string path = @"\\[server]\billeder";
private string path2 = @"\\[server]\c$\AdPictures";
try
{
DirectoryInfo dr = new DirectoryInfo(path);
FileInfo[] finfo = dr.GetFiles();
foreach (FileInfo fi in finfo)
{
fi.CopyTo(path2 + fi.Name);
}
}
Og får selvfølgelig fejl, da der ikke er adgang til folderne.
Hjælp :o)
27. februar 2009 - 10:11
#3
Arne_v smider du ikke et svar, så du kan få point? Det virkede perfekt :o)
Her er koden til andre interesserede:
try
{
ProcessStartInfo psi = new ProcessStartInfo("net", "use " + path2 + @"\IPC$ /user:" + username + " " + pw);
Process p = new Process();
p.StartInfo = psi;
p.Start();
DirectoryInfo sourceDir = new DirectoryInfo(path);
DirectoryInfo destinationDir = new DirectoryInfo(path2);
CopyDirectory(sourceDir, destinationDir);
p.WaitForExit();
p.Close();
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine(e.ToString());
}
static void CopyDirectory(DirectoryInfo source, DirectoryInfo destination)
{
if (!destination.Exists)
{
destination.Create();
}
// Copy all files.
FileInfo[] files = source.GetFiles();
foreach (FileInfo file in files)
{ file.CopyTo(System.IO.Path.Combine(destination.FullName, file.Name), true);
}
}