رفتن به مطلب
  • 0

چگونه تایپ یک فایل رو بفهمیم


ali mo

سوال

سلام وقت بخیر 

بنده یک لیست دارم که داخلشون یه سری فایل ها هست که مثلا اخرش ننوشته .mp3 یا .mp4 چه جوری می تونم بفهمم فرمت این فایل ها چیه ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

6 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام وقت بخیر خدمت همه دوستان 

اقا من برای این پیدا کردن فرمت فایل بدون داشتن پسوند یک راهی پیدا کردم که به نسبت اصولی تر هست نسبت به روش خطا ولی خوب زمان اجرا زیادی داره ( اینجا می زارم که اگر دوستی کارش گیر کرد وقت نزاره عین من )

اولین روش که استفاده از همون روش خطا هست که داخل پست های قبلی دوستمون هم گفتن 

که کد نمونه اش شبیه زیر هست :

		Try
			Dim ib As Bitmap
			
			ib.Initialize(adress,name_file)
		
					
					
			List.Add(name_file &".jpg")
					
		Catch
			Log("type : mp4")
			List.Add(name_file &".mp4")
					
		End Try

که عکس نسبت می دیم به ویدیو اگر غلط بود می فهمیم ویدیو هست (البته اگر ختما بدونیم فایل ها ویدیو و عکس هستن )

ولی روش دوم

کافیه هدر اون فایل پیدا کنیم یعنی اون فایل مثلا عکس رو به صورت متنی  باز کنیم اگر اولش JFIF یا png بود یا بقیه فرمت ها اون رو عکس بشناسونیم ( که البته ممکنه این روش یکم خطا داشته باشه و برای فرمت های دیگه هم قابل تعمیم هست)

مثالش کد زیر هست

dim list as list  = File.ReadString(adress,name_file)
'dim Read_txt as string
'				If Read_txt.Contains("JFIF") or Read_txt.Contains("png")Then
'					List.Add(name_file &".jpg")
'					Else
'					Log("type : mp4")
'					List.Add(name_file &".mp4")
'						
'				End If

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 1 ساعت قبل، ali mo گفته است :

سلام وقت بخیر 

بنده یک لیست دارم که داخلشون یه سری فایل ها هست که مثلا اخرش ننوشته .mp3 یا .mp4 چه جوری می تونم بفهمم فرمت این فایل ها چیه ؟

بعید میدونم شدنی باشه همچین چیزی دوست عزیز.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 8 ساعت قبل، ali mo گفته است :

سلام وقت بخیر 

بنده یک لیست دارم که داخلشون یه سری فایل ها هست که مثلا اخرش ننوشته .mp3 یا .mp4 چه جوری می تونم بفهمم فرمت این فایل ها چیه ؟

اگر منظورتون این هست که کلا مشخص نیست چه نوع فایلیه، یعنی فایل کلا پسوند نداره، به نظر من کلا امکان فهمیدن نوع اون وجود ندارهم.

امااگر میخواین نوع فایل هارو جداسازی کنین، یعنی در حالتی که پسوند دارن، این کار قابل انجامه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام دوست عزیز،

اگر فرمت های فایل هارو خودتون میدونید و میخواهید جهت امنیت پسوند رو بردارید یا اینکه میدونید کاربر تعدادی فایل با فرمت های محدود وارد می‌کنه میتونید اینکارو کنید. خلاصه بگم باید فرمت هارو محدود کنید و اونارو بدونید (تنها راهی هست که به ذهنم میرسه، البته امتحان نکردم شما امتحان کنید خبر بدید.)

مثلا به کاربر میگید ما فرمت های zip,mp3,mp4,png رو میتونیم تشخیص بدیم بدون اینکه فایل تون پسوند داشته باشه.

سپس مثلا برای تشخیص زیپ میاییم یک try catch مینویسیم و داخل try میگیم بیا اینو توی dirinteral استخراج کن(کتابخانه استخراج هست)

خب اگه استخراج بشه یعنی این فایل زیپ هست اما اگر خطایی باشه یعنی اینکه این فایل زیپ نیست و توی catch یک try catch دیگه تعریف میکنید مثلا میگید این فایل رو پخش کن سپس سریعا متوقف کن(تا کاربر نشنود) که اگه پخش بشه یعنی فایل mp3 هست و اگه نشد این m3 نیست و باید توی catch این، فرمت های دیگرو چک کنیم...

موفق باشید:53:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 18 بهمن 1399 در 09:47، Mr.Man گفته است :

اون رو از طریق Regex با کاراکتر "." جدا کنید.

آخرین آرایه رو بگیرید و چک کنید.

ممنون از شما خیر پسوند ندارنم که بخوام این کار کنم

 

در 23 ساعت قبل، محمدرضا شاهپیری گفته است :

بعید میدونم شدنی باشه همچین چیزی دوست عزیز.

مرسی استاد

 

در 16 ساعت قبل، mfbco1996 گفته است :

اگر منظورتون این هست که کلا مشخص نیست چه نوع فایلیه، یعنی فایل کلا پسوند نداره، به نظر من کلا امکان فهمیدن نوع اون وجود ندارهم.

امااگر میخواین نوع فایل هارو جداسازی کنین، یعنی در حالتی که پسوند دارن، این کار قابل انجامه

ممنون از شما خیر از اول پسوند ندارن 

 

در 12 ساعت قبل، امیرحسین قاسمی گفته است :

سلام دوست عزیز،

اگر فرمت های فایل هارو خودتون میدونید و میخواهید جهت امنیت پسوند رو بردارید یا اینکه میدونید کاربر تعدادی فایل با فرمت های محدود وارد می‌کنه میتونید اینکارو کنید. خلاصه بگم باید فرمت هارو محدود کنید و اونارو بدونید (تنها راهی هست که به ذهنم میرسه، البته امتحان نکردم شما امتحان کنید خبر بدید.)

مثلا به کاربر میگید ما فرمت های zip,mp3,mp4,png رو میتونیم تشخیص بدیم بدون اینکه فایل تون پسوند داشته باشه.

سپس مثلا برای تشخیص زیپ میاییم یک try catch مینویسیم و داخل try میگیم بیا اینو توی dirinteral استخراج کن(کتابخانه استخراج هست)

خب اگه استخراج بشه یعنی این فایل زیپ هست اما اگر خطایی باشه یعنی اینکه این فایل زیپ نیست و توی catch یک try catch دیگه تعریف میکنید مثلا میگید این فایل رو پخش کن سپس سریعا متوقف کن(تا کاربر نشنود) که اگه پخش بشه یعنی فایل mp3 هست و اگه نشد این m3 نیست و باید توی catch این، فرمت های دیگرو چک کنیم...

موفق باشید:53:

ممنون از شما دوست عزیز بله این راه تری کچ می خواستم انجام بدم ولی یه مقدار غیر اصولی هست چون تعداد فایل بره بالا سنگین میشه برنامه گفتم قبلش بپرسم از دوستان که راه اصولی داره یا خیر 

ممنون از همه دوستان

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...