PDA

View Full Version : باز نمودن فایل ها در سی شارپ به روش های مختلف



AmirHarirbafan
جمعه 06 اسفند 1389, 01:18 صبح
در این پست میخوام براتون یک مثال عملی در سی شارپ بزنم که چطور میشه
1- یک فایل رو از روی هارد دیسک با یک نرم افزار دلخواه بازکرد،

2- یک فایل رو از روی هارد دیسک با نرم افزار پیفرضی که برای ویندوز تعریف شده، بازکرد

3- یک فایل رو در پنجره ی Explorer باز کرد در حالی که اون فایل به حالت انتخاب در اومده



کل کاری که باید انجام داد اینه که توسط دستور زیر فایل ها و نرم افزارهایی رو که میخواید، اجرا کنید. و پارامتر به اونا بفرستید


System.Diagnostics.Process.Start(fileName, arguments)
1- برای باز کردن یک فایل با یک نرم افزار مشخص، از دستور زیر میتوان استفاده کرد. (به عنوان مثال: یک عکس با نرم افزار Paint)


System.Diagnostics.Process.Start("msPaint", "C:\\Pic.jpg");
2- برای باز کردن یک فایل با نرم افزار پیشرفض، از دستور زیر میتوان استفاده کرد. (به عنوان مثال: یک عکس با هر نرم افزاری که کاربر برای ویندوز مشخص نموده است)


System.Diagnostics.Process.Start("Explorer", "C:\\Pic.jpg");
3- حال اگر نمیخواهید که فایل اجرا شود و تنها مایلید که آن را در Explorer نمایش دهید و همچنین انتخاب نیز باشد، میتوانید از دستور زیر استفاده کنید.(به عنوان مثال: پنجره ی Explorer باز شود و در حالی که محتویات درایو C را نمایش میدهد، فایل Pic.jpg نیز انتخاب باشد)

[System.Diagnostics.Process.Start("Explorer", "/SELECT, C:\\Pic.jpg");[/CODE]
جهت کسب اطلاعات بیشتر در مورد این تابع پر کاربرد میتوانید از لینک زیر استفاده نمایید

http://msdn.microsoft.com/en-us/library/h6ak8zt5.aspx

jebco2000
پنج شنبه 24 فروردین 1402, 16:54 عصر
اگر در سی شارپ بخواهیم یک فایل ایمیج با پسوند iso را اجرا کنیم چگونه مشود از دستورات فوق استفاده کرد؟ آیا فریاد رسی هست؟

پرستو پارسایی
پنج شنبه 24 فروردین 1402, 20:30 عصر
با اجازه از استارتر پست
اجرا کردن یک فایل ایمیج با پسوند iso

using System.Diagnostics;

// ...


string isoPath = "C:\\example\\image.iso";


// اجرای فایل ایمیج با پسوند iso
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = "explorer.exe",
Arguments = $"/select, "{isoPath}""
};
Process.Start(startInfo);

jebco2000
چهارشنبه 29 فروردین 1403, 00:47 صبح
با اجازه از استارتر پست
اجرا کردن یک فایل ایمیج با پسوند iso

using System.Diagnostics;

// ...


string isoPath = "C:\\example\\image.iso";


// اجرای فایل ایمیج با پسوند iso
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = "explorer.exe",
Arguments = $"/select, "{isoPath}""
};
Process.Start(startInfo);

از پاسخ شما ممنونم
تخصص بنده نرم افزار نیست و فقط در مواقع لزوم ناچارم برای مشکلات بوجود آمده به سایر دوستان مراجعه کنم آنهم در شرایطی که از همه جا تقریبا ناامید شده ام .
ای کاش توضیح میدادید کمی بیشتر .... چون در خط 13 Arguments به تنهایی در اینتلیسنس وجود ندارد . ای کاش بهتر و بیشتر میشد کمک کنید.در هر صورت ممنون

ROSTAM2
چهارشنبه 29 فروردین 1403, 07:46 صبح
از پاسخ شما ممنونم
تخصص بنده نرم افزار نیست و فقط در مواقع لزوم ناچارم برای مشکلات بوجود آمده به سایر دوستان مراجعه کنم آنهم در شرایطی که از همه جا تقریبا ناامید شده ام .
ای کاش توضیح میدادید کمی بیشتر .... چون در خط 13 Arguments به تنهایی در اینتلیسنس وجود ندارد . ای کاش بهتر و بیشتر میشد کمک کنید.در هر صورت ممنون

سلام به همه.

برای اجرای یک فایل .ISO در ویندوز 10 می تونید با دابل کلیک اجراش کنید...
یا از منوی راست کلیک آیتم پیش فرض Mount رو کلیک کنید.
در صورتی که آیتم Mount حذف شده باشه می تونید از منوی Open With... --> Windows Explorer استفاده کنید.

155630

jebco2000
چهارشنبه 05 اردیبهشت 1403, 23:09 عصر
سلام به همه.

برای اجرای یک فایل .ISO در ویندوز 10 می تونید با دابل کلیک اجراش کنید...
یا از منوی راست کلیک آیتم پیش فرض Mount رو کلیک کنید.
در صورتی که آیتم Mount حذف شده باشه می تونید از منوی Open With... --> Windows Explorer استفاده کنید.

155630

از توجه شما سپاسگزارم

اما ماجرا اجرای یک فایل iso در سی شارپ است.

shahryari
پنج شنبه 06 اردیبهشت 1403, 08:59 صبح
با سلام البته من نمیدونم چرا این پست را بالا اوردید ، کاش یک تاپیک جدید ایجاد میکردید
فایل iso در واقع یک فایل فشرده مانند زیپ هست که هدرش کمی فرق میکنه
اگه منظورتون این بود که چجوری میشه در سی شارپ محتوای فایل iso را استخراج کرد،

از کتابخانه .NET DiscUtils (http://discutils.codeplex.com/) میتونید استفاده کنید

using DiscUtils;using DiscUtils.Iso9660;


void ExtractISO(string ISOName, string ExtractionPath)
{
using (FileStream ISOStream = File.Open(ISOName, FileMode.Open))
{
CDReader Reader = new CDReader(ISOStream, true, true);
ExtractDirectory(Reader.Root, ExtractionPath + Path.GetFileNameWithoutExtension(ISOName) + "\", "");
Reader.Dispose();
}
}
void ExtractDirectory(DiscDirectoryInfo Dinfo, string RootPath, string PathinISO)
{
if (!string.IsNullOrWhiteSpace(PathinISO))
{
PathinISO += "\" + Dinfo.Name;
}
RootPath += "\" + Dinfo.Name;
AppendDirectory(RootPath);
foreach (DiscDirectoryInfo dinfo in Dinfo.GetDirectories())
{
ExtractDirectory(dinfo, RootPath, PathinISO);
}
foreach (DiscFileInfo finfo in Dinfo.GetFiles())
{
using (Stream FileStr = finfo.OpenRead())
{
using (FileStream Fs = File.Create(RootPath + "\" + finfo.Name)) // Here you can Set the BufferSize Also e.g. File.Create(RootPath + "\" + finfo.Name, 4 * 1024)
{
FileStr.CopyTo(Fs, 4 * 1024); // Buffer Size is 4 * 1024 but you can modify it in your code as per your need
}
}
}
}
static void AppendDirectory(string path)
{
try
{
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
}
catch (DirectoryNotFoundException Ex)
{
AppendDirectory(Path.GetDirectoryName(path));
}
catch (PathTooLongException Exx)
{
AppendDirectory(Path.GetDirectoryName(path));
}
}

اینم نحوه استفاده تابع:

ExtractISO(ISOFileName, Environment.GetFolderPath(Environment.SpecialFolde r.DesktopDirectory) + "\");