Я работаю над проектом C#, и мне нужно, чтобы файл удалялся через 30 секунд. Поэтому, как только файл отправляется на компьютер, мне нужно программное обеспечение для подсчета до 30 секунд и в то же время покажите брызговую форму и через 30 секунд закройте заставку, а затем удалите файл.Как удалить файл через 30 секунд/или удалить файл после завершения задания
Я добавил заставку под названием «изображение». Итак, теперь, что происходит, данные отправляются только на принтер после закрытия заставки. Мне нужно многопроцессорное задание. Я имею в виду, что данные должны печататься с одной стороны, пока экран всплеска должен отображаться одновременно. Есть ли способ, которым я могу выйти !! .. Пожалуйста, помогите мне.
Так что в моем случае я копирую файл в папку bin/debug. затем отправляет данные на машину одновременно показывать заставку в течение 30 секунд и закройте экранную заставку, а затем мне нужно удалить файл ..
коды:
private void button4_Click(object sender, EventArgs e)
{
//string filePath = image_print();
// MessageBox.Show(filePath, "path");
string s = image_print() + Print_image();
if (String.IsNullOrEmpty(s) || img_path.Text == "")
{
return;
}
else
{
//here its coming to the splash screen code, But data is transferred to the machine only after the splash screen is close :-(
this.Hide();
omg = new image();
omg.ShowDialog();
this.Show();
//splash screen closed and then data is transferred.. which i don't need.. i need simultaneous job to be done at the same time..
PrintFactory.sendTextToLPT1(s);
}
}
private string image_print()
{
OpenFileDialog ofd = new OpenFileDialog();
string path = "";
string full_path = "";
string filename_noext = "";
ofd.InitialDirectory = @"C:\ZTOOLS\FONTS";
ofd.Filter = "GRF files (*.grf)|*.grf";
ofd.FilterIndex = 2;
ofd.RestoreDirectory = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
filename_noext = System.IO.Path.GetFileName(ofd.FileName);
path = Path.GetFullPath(ofd.FileName);
img_path.Text = filename_noext;
//MessageBox.Show(filename_noext, "Filename"); - - -> switching.grf
// MessageBox.Show(full_path, "path");
//move file from location to debug
string replacepath = @"\\bin\Debug";
string fileName = System.IO.Path.GetFileName(path);
string newpath = System.IO.Path.Combine(replacepath, fileName);
// string newpath = string.Empty;
if (!System.IO.File.Exists(filename_noext))
System.IO.File.Copy(path, newpath);
filename_noext = img_path.Text;
MessageBox.Show(filename_noext, "path");
}
if (string.IsNullOrEmpty(img_path.Text))
return "";//
StreamReader test2 = new StreamReader(img_path.Text);
string s = test2.ReadToEnd();
return s;
}
private string Print_image()
{
//some codes
return s;
}
В форме изображения: У меня есть следующие коды
public partial class image : Form
{
string filePath;
public image()
{
InitializeComponent();
// this.filePath = FileToDeletePath;
System.Timers.Timer timer1 = new System.Timers.Timer();
timer1.Interval = 30000;
timer1.Elapsed += timer1_Elapsed;
timer1.Start();
}
private void image_Load(object sender, EventArgs e)
{
}
void timer1_Elapsed(object sender, ElapsedEventArgs e)
{
//delete the file using "filePath"
string Filename = img_path.Text; // here i cannot pass the old string file name with extension to this form.. Any ways please help me out
if (string.IsNullOrEmpty(Filename))
return;
if (Filename.ToCharArray().Intersect(Path.GetInvalidFileNameChars()).Any())
return;
File.Delete(Path.Combine(@"\\bin\Debug", Filename));
}
}
Обратите внимание, что она выглядит так, чтобы закрыть, чтобы скопировать пасту ваш [предыдущий вопрос] (http://stackoverflow.com/questions/26618555/how-to-delete-the-file-after-30-seconds). По крайней мере, обязательно укажите атрибут автора второй половины кода и объясните, как этот вопрос существенно отличается. –
Вы говорите о отправке файла на компьютер, а затем из ниоткуда вы говорите о принтере. Я смущен. Почему этот файл поступает на машину? Когда он печатается? Для чего нужен экран заставки? Это на вашей машине или машине, получающей файл? –
, если оба решения правильны, вы можете использовать любой из них. Но я знаю, что у вас возникают проблемы с его внедрением. Во-вторых, вам не нужно использовать метод ShowDialog(). вы можете использовать метод 'Show()'. После этой строки вам просто нужно вызвать метод sleep из класса threading и задать интервал в миллисекундах. Приложение будет останавливаться на заданный интервал в миллисекундах, после чего оно будет продолжено. Теперь, после спящего метода, вы можете написать код для удаления файла, а в и вы можете закрыть всплывающее окно, вызвав метод 'omg.Close()'. – Shell