У меня есть форма печати, которая выполняет задания печати. Когда я закрываю форму печати без печати я нажимаю кнопку ЗакрытьНе удается удалить файл после отображения на printpreviewcontroller
Закрыть кнопка имеет
private void Close_Click(object sender, EventArgs e)
{
PublicVariables.PrintData = -1;
PublicVariables.PrintStat = false;
ppc.Document = null;
ppc.Dispose();
streamToRead.Close();
this.Hide();
}
Но каждый раз, когда я создаю текстовый файл для печати удаляет старое.
Удалить метод:
public static bool DeleteData()
{
bool result=true;
string pattern = "data??.txt";
string appPath = Path.GetDirectoryName(Application.ExecutablePath);
var matches = Directory.GetFiles(appPath, pattern);
foreach (string file in Directory.GetFiles(appPath).Intersect(matches))
{
try
{
File.Delete(file);
result =true;
}
catch (IOException e1)
{
MessageBox.Show(e1.ToString());
return false;
}
}
return result;
}
Но если IOException происходит не может удалить любой файл. Однако форма загрузки всех потоков у меня есть DeleteData(), и это без проблем удаляет текстовые данные.
Есть ли способ удалить этот текстовый файл внутри потока, в котором он создан?
Для тех, кто посоветует мне сделать скрытую форму, которая удалит данные. Я сделал это, у меня всегда была ошибка IOexception. После нескольких ошибок IOexception все файлы данных .txt стираются, но это происходит случайным образом. .
Здесь ниже две процедуры, которые создают данные ?? TXT
http://www.turcguide.com/stack/procedures.txt
Здесь процедуры CreateDataFile (строка Fname) и GetNewfName (строка Старое_имя) ссылка:
http://turcguide.com/stack/createdatafile.txt
Какое сообщение об ошибке? Открыт ли документ в то время, когда вы пытаетесь удалить? – grek40
@ grek40 Файл занят vshost. У меня такой же метод существует в разных потоках они работают. Я посмотрел, не закрыл ли я файл, который создал данные .txt (data00.txt, data01.txt так долго до data99.txt). Кажется, все они закрыты после создания данных. Txt Как показано в моем методе после удаления printpreviewcontroller, я закрываю считыватель потока. Удаление происходит непосредственно перед созданием новых данных. –
Возникает ли та же проблема при запуске кода вне отладчика visual studio? (См. Http://stackoverflow.com/questions/774187/what-is-the-purpose-of-vshost-exe-file) – grek40