Ошибка, создав файл “Cannot, поверьте в file when that file already exist”

Я стараюсь создавать файл начиная с названный Веб услуги.

Когда я это выполняю, у меня появляется ошибка Cannot create a file when that file already exist

Согласно debug, код падает в линию File.Move(originalFileName, newFileName); Здесь мой код, они могли бы говорить мне, что я врежу?

Большое спасибо.

string testExport = proj.ProjectTitle; ;
string outCsvFile = string.Format(@"D:\\testExport\\{0}_.zip", testExport); 
byte[] MyBinFiles = db.GetResponse(AllProjectIds);

DirectoryName = Path.GetDirectoryName(outCsvFile);

String finalPath = Path.Combine(Path.GetDirectoryName(outCsvFile),
               Path.GetFileNameWithoutExtension(outCsvFile)
              + DateTime.Now.ToString("_yyyyMMdd HHmms")
              + Path.GetExtension(outCsvFile));


Console.WriteLine("Create ZIP: " + finalPath);

System.IO.File.WriteAllBytes(finalPath, MyBinFiles);

Thread.Sleep(1000);
Console.WriteLine("WriteAllBytes :  " + finalPath);


string zipFileName = Path.GetFileNameWithoutExtension(outCsvFile)
              + DateTime.Now.ToString("_yyyyMMdd HHmms");


while (!FileExtract(finalPath, Path.GetDirectoryName(outCsvFile)))
{
    Thread.Sleep(1000);
}

while (!FileDelete(finalPath))
{
    Thread.Sleep(1000);
}

//Thread.Sleep(1000);

DirectoryInfo d = new DirectoryInfo(Path.GetDirectoryName(outCsvFile));


foreach (FileInfo file in d.GetFiles("*.csv"))
{
    if (!(file.Name.IndexOf("__") >= 0))
    {
        string originalFileName = file.FullName;
        int y = file.Name.IndexOf("_");
        string newFileName = zipFileName + file.Name.Substring(y);
        newFileName = Path.GetDirectoryName(outCsvFile) + @"\" + newFileName;
        File.Move(originalFileName, newFileName);

        files.Add(newFileName);
    }

}
string zipFolder = ConfigurationSettings.AppSettings["ZipFolder"].ToString();

//ZipAllFiles
while (!ZipAllFiles(DirectoryName, zipFolder))
{
  hread.Sleep(1000);
}

onsole.WriteLine("Deleting All Csv file");
1
задан 25.03.2016, 18:00
2 ответа

Если мы предполагаем, что "действительно не существует файл с тем же именем", в твоем случае он мне кажется, что, реализовав Substring() в этой lГ-nea:

string newFileName = zipFileName + file.Name.Substring(y);

ты получаешь не маршрут файла, возможно что-то, что кажется каталогом:

"c:\datos\mi_archivo_nuevo"

убедись, что получило маршрут файла для переменной newFileName

"c:\datos\mi_archivo_nuevo.csv"

это, для того, чтобы ты смог реализовывать:

  File.Move(@"c:\datos\mi_archivo_original.csv", @"c:\datos\mi_archivo_nuevo.csv");
  • Другая вещь, которая может происходить, состоит в том, что folder, где ты хочешь двинуть файл, не существует!.
1
ответ дан 24.11.2019, 14:41
  • 1
    Привет у тебя есть весь разум, согласно break point, что realize я получаю имя, не маршрут файла. folder, где я двигаю файл, если он существует. В какой форме я могу убеждаться, что я перемещаю маршрут файла? – A arancibia 25.03.2016, 15:19
  • 2
    Привет, проверяя лучше я вижу, что я получаю хорошо маршрут файла в переменной newFileName. Llendo ниже я вижу, что падает в линию string zipFolder = ConfigurationSettings. AppSettings [" ZipFolder"].ToString (); он говорит мне, что Object reference not set to an instance of an object. – A arancibia 25.03.2016, 18:01
  • 3
    ты не нуждаешься в том, чтобы использовать toString (); и #250; nicamente: string zipFolder = ConfigurationSettings. AppSettings [" ZipFolder"]; и гарантируй этот определенная в config! – Jorgesys♦ 25.03.2016, 18:51
  • 4
    Если оно я функционирует снимая toString () единственная проблема esque повторяет мне то же имя файла в переменной string testExport = proj. ProjectTitle; и он не меняет имена как foreach, у которого должны бы быть все ProjectTitle – A arancibia 25.03.2016, 18:58

Если уже существует файл с тем же именем, или ты удаляешь раньше файл и потом это двигаешь или это заменяешь (производя резервную копию старого файла).

, Чтобы это удалять перед тем, как двигать:

using System.IO;

...
...

if (File.Exists (archivoDestino_Path))  
   File.Delete (archivoDestino_Path);

File.Move (archivoFuente_Path, archivoDestino_Path);

...

, Но а следовательно ты комментируешь, уже generГі файл ранее. Тогда, если то, что мы хотим, состоит в том, чтобы заменять archivoDestino_Path , и сохранять резервную копию старика archivoDestino_Path :

 Using System.IO;

 ...
 ...

 File.Replace (archivoFuente_Path, archivoDestino_Path, archivoBackUp_Path);

 ...
0
ответ дан 24.11.2019, 14:41

Теги

Похожие вопросы