.net developer123456789 Ответов: 2

Файл с одного компьютера на другой сетевой диск компьютера в локальной сети с использованием C# .NET


Всем Привет

Я хочу написать код для передачи файла с одного компьютера на другой через сеть на языке Си#

Кто-нибудь может мне помочь

заранее спасибо

2 Ответов

Рейтинг:
20

koolprasadd

Чтобы скопировать файл с одной машины на другую через локальную сеть, вам нужна какая-то общая папка на целевой машине.
Затем вы можете получить к нему доступ, используя следующий синтаксис

System.IO.File.Copy("sourcePath", "\\machinename\share folder path");

//but if you want to paste it on specific drive then you can use following code
System.IO.File.Copy("sourcePath", "\\machinename\DriveLetter$\folder name");
//e.g. System.IO.File.Copy("D:\\test.txt", "\\machinename\E$\test\test.txt");


.net developer123456789

Большое спасибо..Сейчас работая

koolprasadd

Пожалуйста, поделитесь своим кодом, чтобы мы могли вам помочь

.net developer123456789

Файл '\Test-PC\UploadTest\test.txt \' уже существует.
пожалуйста, есть идеи ?

koolprasadd

Вы действительно хотите заменить существующий файл ?

.net developer123456789

Код Здесь :

public static void UploadShareFile(string strfilename)
{
пробовать
{
string fileName = Path.GetFileName(strfilename);
System.IO.File.Copy(strfilename, "\\\Admin-PC\\Upload\\" + fileName);

}
поймать (исключение бывший)
{
WriteToErrorFile("ошибка метода UploadShareFile on: {0}" + ex.сообщение);
}
}

koolprasadd

Вы действительно хотите заменить существующий файл ?

.net developer123456789

Да,пожалуйста, помогите мне

koolprasadd

Просто передайте "true" функции копирования, это поможет перезаписать выходящий файл. смотреть ниже
// Скопируйте один файл в то место, где он уже существует
Файл.Копия("file-a.txt", "file-b.txt", true); // перезапись = true

.net developer123456789

Спасибо...

koolprasadd

Если это решит вашу проблему ... тогда примите это как решение

Рейтинг:
2

OriginalGriff

В принципе, это просто случай вызова файла.Подвиньте: Файл.Метод Перемещения (String, String) (System.IO)[^] и предоставление путей источника и назначения.
Проблемы возникают, если удаленная машина требует входа в систему, и в этом случае самым простым решением является создание "виртуального диска" на вашем компьютере, который подключен к папке на удаленном компьютере (я делаю это с моим NAS, чтобы сделать все проще, и подключаю "буквы дисков" к нескольким различным папкам для различных целей). Вы можете сделать это в Проводнике Windows, используя опцию "сопоставить сетевой диск" контекстного меню сети.
Если вы этого не сделаете, то вам, вероятно, придется использовать олицетворение:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
WindowsIdentity wid = new WindowsIdentity(username, password);
WindowsImpersonationContext context = wid.Impersonate();

File.Move(pathToSourceFile, "\\\\Server\\Folder");

context.Undo();


.net developer123456789

Я получил ошибку примерно такого рода :- предоставленное имя не является правильно сформированным именем учетной записи.

OriginalGriff

Вероятно, ваше имя пользователя находится в неправильном формате: оно должно быть "user@domain"

Member 13968693

В этой строке: WindowsImpersonationContext context = wid.Олицетворять();
Я получил эту ошибку: система.Отражение.TargetException: ошибка в приложении.