PDA

View Full Version : سوال: استفاده از فایل های داخل Resource



jebreily
سه شنبه 05 آذر 1398, 15:57 عصر
من یه فایل PDF ساختم و وارد Rrsource برنامه ام کردم و می خواهم با WEB Browser (با یه آدرس از توی درایو رفتم ، شد.) اون رو نمایش بدم .
کسی می تونه کمکم کنیه ؟؟؟
یا علی !!!

the king
سه شنبه 05 آذر 1398, 17:46 عصر
من یه فایل PDF ساختم و وارد Rrsource برنامه ام کردم و می خواهم با WEB Browser (با یه آدرس از توی درایو رفتم ، شد.) اون رو نمایش بدم .
کسی می تونه کمکم کنیه ؟؟؟
یا علی !!!

YourPdfFile نام اون آیتمی است که به Resources اضافه شده و یک آرایه ای از بایت ها است.


private void button1_Click(object sender, EventArgs e)
{
var path = Path.GetTempFileName();
File.WriteAllBytes(path, Properties.Resources.YourPdfFile);
webBrowser1.Navigate(path);
}

ASHKANLAEI
سه شنبه 05 آذر 1398, 18:20 عصر
سلام. گفتم در همین تاپیک بپرسم. این کد:
Path.GetTempFileName();
دقیقاً چه کاری انجام میده؟

the king
سه شنبه 05 آذر 1398, 18:49 عصر
سلام. گفتم در همین تاپیک بپرسم. این کد:
Path.GetTempFileName();
دقیقاً چه کاری انجام میده؟
در مسیر فایل های موقتی ویندوز که فرضا C:\Windows\Temp هستش با یک الگوی مشخص یک فایل جدید با یک اسم جدید که خودش در نظر میگیره میسازه و به ما مسیر کامل فایلش رو تحویل میده.
مناسبه برای اینکه بخواهیم بدون اینکه تداخلی با فایل های موجود داشته باشه یک فایل موقتی جدید بسازیم و کاری داخلش انجام بدیم.
البته اگه کاربر هیچوقت اون پوشه Temp ویندوز رو خالی نکنه بعد 65535 باری که این متد بهمون سرویس داده دیگه خطا میده، چون اسم فایل هاش بر اساس یک شماره 16 بیتی است و باید حداقل یکی از فایلها قبلی پاک بشن تا بتونه فایل جدیدی بسازه.
در این مثال نمیشه سریع اون فایل رو حذف کرد ولی در حالت کلی اگه امکانش باشه بهتره بعدا خودمون فایلی که مسیرش رو داریم حذف کنیم، گو اینکه در مسیر Temp ویندوز ئه و سایر برنامه ها هم داخلش فایل رو به حال خودش رها می کنند.

jebreily
سه شنبه 05 آذر 1398, 19:37 عصر
چجوری او فایل رو با کد حذف کنیم ؟؟؟؟؟

the king
سه شنبه 05 آذر 1398, 20:36 عصر
چجوری او فایل رو با کد حذف کنیم ؟؟؟؟؟

خیلی ساده، هر فایل موقتی که ساختیم مسیرش رو در لیستی نگه میداریم تا وقتی برنامه داره بسته میشه هر چی فایل در اون لیست هست حذف کنیم.


using System.IO;

public partial class Form1 : Form
{
private List<string> _tempFiles = new List<string>();

public Form1()
{
InitializeComponent();
Application.ApplicationExit += Application_ApplicationExit;
}

private void button1_Click(object sender, EventArgs e)
{
var path = Path.GetTempFileName();
_tempFiles.Add(path);
File.WriteAllBytes(path, Properties.Resources.YourPdfFile);
webBrowser1.Navigate(path);
}

private void Application_ApplicationExit(object sender, EventArgs e)
{
foreach (var path in _tempFiles)
{
File.Delete(path);
}
}
}