PDA

View Full Version : تشخیص نوع فایل



xrezax
جمعه 09 مهر 1389, 11:53 صبح
من برنامه ای نوشتم که محتوای یک درایو لیست می کنه می خوام جلوی هر فایل نوع فایلو بنویسه ( یعنی اگه فایلی به نام reza.txt داریم اینجوری بنویسه reza.txt = txt .

Saman_12
جمعه 09 مهر 1389, 12:43 عصر
خوب پسوندش رو جدا کن و به عنوان نوع فایل بنویس.

javadt
جمعه 09 مهر 1389, 12:46 عصر
با اين كد ساده هم مي توني پسوندش رو جدا كني

Public Sub ty(st As String)
All = Len(st)
k = InStr(1, st, ".", vbTextCompare)
MsgBox Mid(st, k + 1, (All - k))
End Sub
Private Sub Command1_Click()
ty "c:\1.txt"
End Sub

xrezax
جمعه 09 مهر 1389, 12:54 عصر
مرسی از کمک هاتون
اگه ممکنه یه نگاهی به فایل ضمیمه بندازین .
می خوام جلوی هر فایلی یک = بزاره و پسوندشو بنویسه
مثلاً
reza.txt = txt
reza.rar = rar
reza = dir (یعنی پوشه)

modirmasool
جمعه 09 مهر 1389, 13:28 عصر
مرسی از کمک هاتون
اگه ممکنه یه نگاهی به فایل ضمیمه بندازین .
می خوام جلوی هر فایلی یک = بزاره و پسوندشو بنویسه
مثلاً
reza.txt = txt
reza.rar = rar
reza = dir (یعنی پوشه)

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

milad-fa
جمعه 09 مهر 1389, 13:44 عصر
این باید کارتون رو راه بندازه:
دوست عزیز یه مقدار مشکل داره :
1-مثلاً اگه اسم یه فایل M.E.txt باشه تو نوع فایلش میده : E.txt
2-اگه پوشه باشه نوعشو Dir نمیده
3-اگه اسم پوشه Program 3.4 باشه نوع فایلش رو میده 4
فکر کنم اگه یه مقدار روش بیشتر کار کنی بهتر بشه!
مرسی.

xrezax
جمعه 09 مهر 1389, 13:53 عصر
آره این مشکلو داره .
اگه یه اسمی چندتا . داشته باشه همرو پسوند شناسایی می کنه

milad-fa
جمعه 09 مهر 1389, 14:01 عصر
شما مثل اولای منی که دوست داشتم همه چیز رو بپیچونم :

MsgBox(IO.Path.GetExtension("C:\Saman_12.Exe"))
ببخشید تو این دستور IO از چه نوعی تعریف شده؟!IOPCSyncIODisp؟!
اگه از این نوع هست باید کدوم Refrence رو Add کنم؟
مرسی.

javadt
جمعه 09 مهر 1389, 14:27 عصر
شما مثل اولای منی که دوست داشتم همه چیز رو بپیچونم :

MsgBox(IO.Path.GetExtension("C:\Saman_12.Exe"))
من نمي خوام چيزي رو بپيچونم!!
اين دستور نياز به كدوم رفرنس داره

اين تابع مي تونه فايل هايي با نام 12.12.txt رو پسوندش رو برگردونه

Function GetExtName(ScanString As String) As String
Dim intPos As String
Dim intPosSave As String
If InStr(ScanString, ".") = 0 Then
GetExtName = ""
Exit Function
End If
intPos = 1
Do
intPos = InStr(intPos, ScanString, ".")
If intPos = 0 Then
Exit Do
Else
intPos = intPos + 1
intPosSave = intPos - 1
End If
Loop
GetExtName = Trim$(Mid$(ScanString, intPosSave + 1))
End Function

ali190
جمعه 09 مهر 1389, 14:47 عصر
سلام
این نمونه رو همین الان ساختم
نظرتون رو بگید

modirmasool
جمعه 09 مهر 1389, 15:10 عصر
دوست عزیز یه مقدار مشکل داره :
1-مثلاً اگه اسم یه فایل M.E.txt باشه تو نوع فایلش میده : E.txt
2-اگه پوشه باشه نوعشو Dir نمیده
3-اگه اسم پوشه Program 3.4 باشه نوع فایلش رو میده 4
فکر کنم اگه یه مقدار روش بیشتر کار کنی بهتر بشه!
مرسی.

ممنون
من براساس فایلی که جناب xrezax نوشته بودن کار کردم. وگرنه باید کل برنامه رو تغییر داد تا اون چیزایی که گفتین انجام بشه. ایشون بحثی از پوشه نکرده بودن. به هر حال چیزهایی رو که گفتین، با استفاده از dirlist وfilelist به راحتی میشه انجام داد که برنامه شو ضمیمه کردم.برای اون مشکل شماره 1 هم یه exit for لازم داشت که گذاشتم.

راستی اون کدی که دوست عزیزم Saman_12 نوشته بودن مال ویبی.نت هستش. حداقل من که توی ویبی6 مشابه اش رو تاحالا ندیدم.

Saman_12
جمعه 09 مهر 1389, 15:27 عصر
من از تمام دوستان معذرت میخوام یک لحظه فکر کردم انجمن دات نت هست.:اشتباه:
اشتباه از من بود که درست دقت نکردم که توی کدوم انجمن هستم.:افسرده:
درضمن بنده قصد بی احترامی نداشتم!!