Agarwal1984 Ответов: 1

Файл не перемещается после печати, потому что он используется другим процессом в C#?


Привет,

File not moving after print because it being used by another process in c#?


мой код печати успешно работает, но мой код перемещения файла не работает, он получает ошибку:
it being used by another process


пожалуйста, помогите мне.
как это можно разрешить?

Анкит Агарвал
инженер-программист

Что я уже пробовал:

Timer myTimer=new Timer();
        private void Form1_Load(object sender, EventArgs e)
        {
            myTimer.Tick+=new EventHandler(myTimer_Tick);
            myTimer.Interval=60000;
            myTimer.Start();
        }
        private void myTimer_Tick(object sender, EventArgs e)
        {
            string[] files = Directory.GetFiles(@"C:\PrintingDocument\");

            foreach (string file in files)
            {
                //if (string.IsNullOrEmpty(file))
                //{
                //    //txtFileName.BackColor = Color.Yellow;
                //    //MessageBox.Show("Please Select file.");
                //    return;
                //}
                if (File.Exists(file))
                {
                    Process proc = new Process();
                    proc.StartInfo.FileName = file;
                    proc.StartInfo.Verb = "Print";
                    proc.StartInfo.CreateNoWindow = true;
                    proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                    proc.Start();
                    proc.WaitForExit();
                    //int exitcode = proc.ExitCode;
                    proc.Close();
                    MessageBox.Show("Printed Successfully" + " " + DateTime.Now.ToString());
                    string fileName = Path.GetFileName(file);
                    System.IO.File.Move(file, @"C:\PrintedDocument\" + fileName);
                    MessageBox.Show("Moved Successfully" + " " + DateTime.Now.ToString());
                    //proc.Kill();
                }
                else
                {
                    MessageBox.Show("Not File found" + " " + DateTime.Now.ToString());
                }
                

            }
        }

Patrice T

Та же проблема, что и ваш последний вопрос

Agarwal1984

я тот же вопрос,
Я использовал эту ссылку:-протокол HTTPS://MSDN для.Майкрософт.ком/Ан-нас/библиотека/системы.чертеж.печать.объект printdocument(В=и 110).aspx-файл
но та же проблема в моем коде напечатана успешно, но мой файл не двигался.
Пожалуйста, помогите мне, как избавиться от кода печати после завершения печати.

1 Ответов

Рейтинг:
0

OriginalGriff

Я объяснил проблему и предложил, что вам нужно сделать, чтобы исправить ее вчера: проблема не изменилась, и решение тоже.
Процесс не может получить доступ к файлу, поскольку он используется другим процессом.[^]
Вы тратите больше времени, пытаясь заставить боджа обойти плохое решение, которое вы могли бы потратить на его реализацию должным образом-и в то же время вы бы чему-то научились...

Если вы не собираетесь слушать то, что мы вам говорим, Есть ли смысл в том, чтобы вы задавали вопрос, или в том, чтобы мы на него отвечали?