Ошибка System.IO.File.Move — не удалось найти часть путиC#

Место общения программистов C#
Ответить
Anonymous
 Ошибка System.IO.File.Move — не удалось найти часть пути

Сообщение Anonymous »

У меня есть программа синхронизации, которая загружает файлы CSV из папки «Входящие», обрабатывает их, а затем перемещает в папку «Архив».
Сегодня я увидел следующую ошибку. с помощью этого программного обеспечения для синхронизации:

[23.06.2014 00:06:04]: Не удалось переместить файл из
D:\IBI_ORDER_IMPORTER_FTP_SERVER\Template3\Fifty &
Dean\Incoming\5A040K___d6f1ca45937b4ceb98d29d0db4601bf4.csv в
D:\IBI_ORDER_IMPORTER_FTP_SERVER\Template3\&
Дин\ Архив\5A040K___d6f1ca45937b4ceb98d29d0db4601bf4.csv - Не удалось
найти часть пути
.

Вот вырванный фрагмент программного обеспечения синхронизации, в котором файл обрабатывается и перемещается:
public static void ProcessSingleUserFile(Int32 TemplateId, String ImportedBy, String FilePath)
{
// Always Rename File To Avoid Conflict
string FileName = Path.GetFileNameWithoutExtension(FilePath);
String NewFilePath = FilePath.Replace(FileName, Utils.RandomString() + "___" + FileName);
File.Move(FilePath, NewFilePath);
FilePath = NewFilePath;

// Log
SyncUtils.ConsoleLog(String.Format("Processing [ {0} as {1} ] By [ {2} ] On Template [ #{3} ]",
FileName + ".csv",
Path.GetFileName(FilePath),
ImportedBy,
TemplateId));

// Init
List myOrderDrafts = new List();

// Parsed Based On Template Id
if (TemplateId == Settings.Default.Multi_Order_Template_Id)
{
// Try Parse File
myOrderDrafts = Utils.ParseMultiImportFile(TemplateId, ImportedBy, FilePath, true);
}
else
{
// Try Parse File
myOrderDrafts.Add(Utils.ParseImportFile(TemplateId, ImportedBy, FilePath, true));
}

// Process Orders
foreach (OrderDraft myOrderDraft in myOrderDrafts)
{
/* code snipped */
}

// Archive File
File.Move(FilePath, FilePath.Replace("Incoming", "Archive"));
}

Есть идеи, что означает эта ошибка? и как это обойти?

Я написал урезанную версию вышеизложенного, чтобы проверить это в контролируемой среде, и при этом ошибка не возникает. код:
static void Main(string[] args)
{
try
{
string baseDir = @"C:\Users\Administrator\Desktop\FTP_SERVER\Template3\Fifty & Dean\Incoming\";

string[] filePaths = Directory.GetFiles(baseDir, "*.csv");

foreach (string filePath in filePaths)
{
// do some work here ...

// move file
string newFilePath = filePath.Replace("Incoming", "Archive");
File.Move(filePath, newFilePath);
Console.WriteLine("File successfully moved");
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}

Console.ReadKey();
}


Подробнее здесь: https://stackoverflow.com/questions/244 ... f-the-path
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»