Рейтинг:
1
Wendelius
Если выполнение кода не дает никаких ошибок, вы должны использовать отладчик, чтобы исследовать, что идет не так. Возможно, путь неверен, и циклы ничего не находят и т. д.
Чтобы использовать отладчик, выполните код построчно и исследуйте переменные, взгляните на Учебник: отладка кода C# - Visual Studio | Microsoft Docs[^]
ADDDITION
Глядя на примеры, в случае использования дословных строк (@) убедитесь, что вы не экранируете разделители папок. Другими словами либо используйте
string souceFile = @"C:\TEMP\";
или
string souceFile = "C:\\TEMP\\";
Marc_Moi
Привет, спасибо за то, что я нашел это в своем коде при отладке.
System.IO.IOException: 'ошибка входа в систему: неизвестное имя пользователя или неверный пароль.
когда я доберусь до строки : FileInfo[] infos = d.GetFiles();
но я не понимаю, почему на машине, где я запускаю программу, у меня есть доступ к этой папке.
Wendelius
Распространенной причиной этого исключения является то, что пользователь, запускающий приложение, не имеет доступа к указанной папке.
Самое главное-это учетная запись, на которой выполняется код. Например, если код выполняется из службы под локальная система учетная запись тогда не имеет доступа к сетевым ресурсам, даже если вы можете иметь эти привилегии при входе на один и тот же компьютер с помощью другой учетной записи. То же самое может произойти и например с ASP.NET приложения, если служба запускается с использованием учетной записи без надлежащих привилегий или, например, при использовании удаленной отладки.
Таким образом, использование соответствующей учетной записи-это один из вариантов, а другой вариант может заключаться в том, чтобы выдать себя за пользователя в коде, см. c# - ошибка входа в систему: неизвестное имя пользователя или неверный пароль.ошибка при доступе к другому серверу - переполнение стека[^]
Marc_Moi
Да,там, где вы видите @"\\путь к папке\", есть \\ в начале причина этого, это сетевая папка, так что @"\\1.1.1.1\abc\" вот почему.
BillWoodruff
+5 Хороший пример обучения навыкам, которые необходимы, а не выполнение работы ОП "за них" !
Рейтинг:
0
Patrice T
static void Main(string[] args)
{
string souceFile = @"\\PATH TO FOLDER\";
string targetFile = @"\\PATH TO FOLDER\";
...
foreach (string filename in Directory.GetFiles(@"\\PATH TO FOLDER\", "*.EDI", SearchOption.TopDirectoryOnly))
{
// First problem is that souceFile and targetFile have same value.
// This means that you try to move a file to same place.
System.IO.File.Move(souceFile, targetFile);
// Second problem is that the file name is not in the parameters of move.
}
}
Вы уверены в этом
@"\\ПУТЬ К ПАПКЕ\" есть ли реальный путь ?
Marc_Moi
Я написал путь к папке, ссылка есть реальный путь к сетевой путь.
Patrice T
Совет: покажите какой-нибудь реалистичный код, чтобы получить полезные ответы.
Marc_Moi
Какая будет разница, даже если я поставлю \\1.1.1.1\testfolder\in вы можете представить себе путь к папке. Все остальные люди действительно понимали, что это был has exemple, но код был тот же самый, за исключением пути.
Спасибо