PDA

View Full Version : rar file



morika
جمعه 12 تیر 1388, 01:29 صبح
سلام
چه جوری مشه یه فایل rar رو باز کرد و محتویات اون رو در جای تعین شده کپی کرد؟
ممنون

#target
جمعه 12 تیر 1388, 13:24 عصر
از کامپوننت Chilkat RAR for C#, VB.NET, ASP.NET استفاده کن

لینک سایت سازنده
http://www.chilkatsoft.com/rar-dotnet.asp

morika
شنبه 13 تیر 1388, 19:46 عصر
ممنون ولی این یه dll هست
من کد می خوام که بتونم اون جوری که می خوام تغییرش بدم

Mani_rf
شنبه 13 تیر 1388, 20:03 عصر
سلام.
من یک راهی بلدم اما فکر نکنم به کارت بیاد اما خوب باز می گم.
با خود WinRar یک فایل به نام Rar.Exe نصب میشه که اگر تو Command اجراش کنی طریقه استفاده کردن ازش را بهتون می گه. می توانید با استفاده از اون و فرمان Shell در VB‌ فایل Rar بسازی یا Extract کنی.
اگر خواستی روش کامل استفاده ازش را برات می گذارم.

morika
شنبه 13 تیر 1388, 20:15 عصر
اگه میشه لطف کنی طرز استفادشو بگی ممنون میشم
راستی اینجوری میشه محتویات او فایل رو جایی کپی کرد؟

#target
یک شنبه 14 تیر 1388, 18:19 عصر
لیست توابع برای اون dll در این لینک قرار داره

http://www.chilkatsoft.com/refdoc/vbnetRarRef.html

یک نمونه کد:

Dim rar As New Chilkat.Rar()

' Note: The Chilkat RAR functionality only provides the ability
' to open, list, and "unrar" (i.e. extract) RAR archives. It does
' not provide the ability to create RAR archives.

' Also, the Chilkat RAR functionality is free. It does not
' require a license to use indefinitely.

Dim success As Boolean

success = rar.Open("abc123.rar")
If (success <> true) Then
MsgBox(rar.LastErrorText)
Exit Sub
End If


success = rar.Unrar("c:/temp/unrarDest/")
If (success <> true) Then
MsgBox(rar.LastErrorText)
Else
MsgBox("Success.")
End If

به نظرم اون dll نسخه آزمایشی هست .

Mani_rf
سه شنبه 16 تیر 1388, 09:25 صبح
سلام. ببخشید که دیر جواب می دم .

برای استفاده از روشی که گفتم باید فایل RAR.EXE را از محل نصب Winrar به محل مورد نظر کپی کنی و برای ایجاد فایل RAR از دستور زیر استفاده کنی.


Const Path as String = "D:\Folder"

Shell("Rar.exe a /df /idp /inul c:\Archive.rar " & Path & "\File1.Tmp " & Path & "\File2.Tmp
(" Path & "\File3.Tmp p"

و برای خارج کردن از حالت RAR از فرمان

Shell ("Rar.exe e /o+ c:\Archive.rar D:\Folder")


استفاده کنی.
در واقع از WinRar برای RAR کردن و باز کردن آرشیو استفاده می کنی با این مزیت که با کپی کردن این فایل نیازی به خود WinRar نداری.

saadi2
سه شنبه 16 تیر 1388, 11:22 صبح
سلام. ببخشید که دیر جواب می دم .

برای استفاده از روشی که گفتم باید فایل RAR.EXE را از محل نصب Winrar به محل مورد نظر کپی کنی و برای ایجاد فایل RAR از دستور زیر استفاده کنی.


Const Path as String = "D:\Folder"


Shell("Rar.exe a /df /idp /inul c:\Archive.rar " & Path & "\File1.Tmp " & Path & "\File2.Tmp
(" Path & "\File3.Tmp p"

و برای خارج کردن از حالت RAR از فرمان

Shell ("Rar.exe e /o+ c:\Archive.rar D:\Folder")


استفاده کنی.


در واقع از WinRar برای RAR کردن و باز کردن آرشیو استفاده می کنی با این مزیت که با کپی کردن این فایل نیازی به خود WinRar نداری.


سلام mani عزیز
ممنون کد بدرد بخوری بود برای من
فقط اشکالش اینه که فایلای اصلی رو منتقل می کنه به آرشیو و پاکشون میکنه چجوری میشه کاری کرد که یه کپی ازشونو آرشیو کنه و فایلا سر جاشون بمونن؟
تشکر

Mani_rf
سه شنبه 16 تیر 1388, 11:29 صبح
سلام دوست عزیز. خوشحالم که توانستم کمکی کنم.
اگر df/ را حذف کنی فایها را از محل اصلی حذف نخواهد کرد.
امکانات فراوان دیگری هم از جمله پسورد گذاری و مشخص کردن میزان فشرده سازی که اگر فایل RAR.EXE را در Command خود ویندوز اجرا کنی لیست کامل آنها را در اختیارت قرار می دهد.

saadi2
سه شنبه 16 تیر 1388, 13:44 عصر
ممنون میشم اگه ایناروهم اضافه کنی به هرصورت تا همینجاشم دستت درد نکنه که زود جواب دادی

Mani_rf
سه شنبه 16 تیر 1388, 14:22 عصر
بفرمایید، این هم از لیست کامل سوئیچ ها
به درد بخور هاش را برات بولد کردم.

Usage: rar <command> -<switch 1> -<switch N> <archive> <files...>
<@listfiles...> <path_to_extract\>


<Commands>
a Add files to archive
c Add archive comment
cf Add files comment
ch Change archive parameters
cw Write archive comment to file
d Delete files from archive
e Extract files to current directory
f Freshen files in archive
i[par]=<str> Find string in archives
k Lock archive
l[t,b] List archive [technical, bare]
m[f] Move to archive [files only]
p Print file to stdout
r Repair archive
rc Reconstruct missing volumes
rn Rename archived files
rr[N] Add data recovery record
rv[N] Create recovery volumes
s[name|-] Convert archive to or from SFX
t Test archive files
u Update files in archive
v[t,b] Verbosely list archive [technical,bare]
x Extract files with full path


<Switches>
- Stop switches scanning
ac Clear Archive attribute after compression or extraction
ad Append archive name to destination path
ag[format] Generate archive name using the current date
ao Add files with Archive attribute set
ap<path> Set path inside archive
as Synchronize archive contents
av Put authenticity verification (registered versions only)
av- Disable authenticity verification check
c- Disable comments show
cfg- Disable read configuration
cl Convert names to lower case
cu Convert names to upper case
df Delete files after archiving
dh Open shared files
ds Disable name sort for solid archive
e[+]<attr> Set file exclude and include attributes
ed Do not add empty directories
en Do not put 'end of archive' block
ep Exclude paths from names
ep1 Exclude base directory from names
ep2 Expand paths to full
ep3 Expand paths to full including the drive letter
f Freshen files
hp[password] Encrypt both file data and headers
id[c,d,p,q] Disable messages
ieml[addr] Send archive by email
ierr Send all messages to stderr
ilog[name] Log errors to file (registered versions only)
inul Disable all messages
ioff Turn PC off after completing an operation
isnd Enable sound
k Lock archive
kb Keep broken extracted files
m<0..5> Set compression level (0-store...3-default...5-maximal)
mc<par> Set advanced compression parameters
md<size> Dictionary size in KB (64,128,256,512,1024,2048,4096 or A-G)
ms[ext;ext] Specify file types to store
mt<threads> Set the number of threads
n<file> Include only specified file
n@ Read file names to include from stdin
n@<list> Include files in specified list file
o+ Overwrite existing files
o- Do not overwrite existing files
oc Set NTFS Compressed attribute
or Rename files automatically
os Save NTFS streams
ow Save or restore file owner and group
p[password] Set password
p- Do not query password
r Recurse subdirectories
r0 Recurse subdirectories for wildcard names only
ri<P>[:<S>] Set priority (0-default,1-min..15-max) and sleep time in ms
rr[N] Add data recovery record
rv[N] Create recovery volumes
s[<N>,v[-],e] Create solid archive
s- Disable solid archiving
sc<chr>[obj] Specify the character set
sfx[name] Create SFX archive
si[name] Read data from standard input (stdin)
sl<size> Process files with size less than specified
sm<size> Process files with size more than specified
t Test files after archiving
ta<date> Process files modified after <date> in YYYYMMDDHHMMSS format
tb<date> Process files modified before <date> in YYYYMMDDHHMMSS format
tk Keep original archive time
tl Set archive time to latest file
tn<time> Process files newer than <time>
to<time> Process files older than <time>
ts<m,c,a>[N] Save or restore file time (modification, creation, access)
u Update files
v Create volumes with size autodetection or list all volumes
v<size>[k,b] Create volumes with size=<size>*1000 [*1024, *1]
vd Erase disk contents before creating volume
ver[n] File version control
vn Use the old style volume naming scheme
vp Pause before each volume
w<path> Assign work directory
x<file> Exclude specified file
x@ Read file names to exclude from stdin
x@<list> Exclude files in specified list file
y Assume Yes on all queries
z[file] Read archive comment from file

saadi2
شنبه 20 تیر 1388, 01:44 صبح
آقا مانی دستت درد نکنه ولی تو این قسمت
Const Path as String = "D:\Folder

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

Mani_rf
شنبه 20 تیر 1388, 13:37 عصر
من اون قسمت را برای نمونه اضافه کردم کد Const Path as String = "D:\Folder را کاملا حذف کن و بجای Path در فرمان Shell بنویس Application.StartupPath تا فایل مورد نظر را در مسیر فایل اجرایی برنامه بسازد.



:لبخند:

saadi2
شنبه 20 تیر 1388, 13:42 عصر
همین کارو کردم ولی عمل نمی کنه وقتی path و اینجوری تعریف میکنی خطا میده یعنی اصلا نمیشه این متغیرو به صورت application startup path تعریف کرد خودت یه امتحانی کن ببین.
یا نمونه کدشو اپلود کن
تشکر که زود پاسخ میدی

مانی جان در مورد این سوالمم که تو این تاپیک کردم ممکنه پاسخشو بدی؟
http://barnamenevis.org/forum/showthread.php?p=754407#post754407

Mani_rf
شنبه 20 تیر 1388, 13:50 عصر
دوست عزیز متغیری که از نوع Const تعریف بشه که دیگه متغیر نیست!!! ثابته...
شما برای قرار دادن آدرس محل قرار گیری برنامه دیگه به اون خط نیازی نداری.
کد را اینجوری بنویسی :


Shell("Rar.exe a /df /idp /inul c:\Archive.rar " & Application.StartupPath & "\File1.Tmp " & Application.StartupPath & "\File2.Tmp
(" & Application.StartupPath & "\File3.Tmp p


و یا اینجوری :

Dim Path as String = Application.StartupPath

Shell("Rar.exe a /df /idp /inul c:\Archive.rar " & Path & "\File1.Tmp " & Path & "\File2.Tmp
(" Path & "\File3.Tmp p"

saadi2
شنبه 20 تیر 1388, 16:19 عصر
عمل نمیکنه

morika
یک شنبه 21 تیر 1388, 00:10 صبح
راستش من هرکاری که کردم نشد نمی دونم چرا میشه این برنامه رو بنویسی و بزاری تا همه استفاده کنن
ممنون

saadi2
سه شنبه 23 تیر 1388, 14:33 عصر
لطفا یه نمونه برنامه اینجا بزار تا استفاده کنیم

Mani_rf
یک شنبه 28 تیر 1388, 15:34 عصر
سلام.
ببخشید , می دونم خیلی دیر دارم جواب می دم اما خوب مشکلات نمی گذارند آدم همیشه اونجوری که می خواد زندگی کنه.

نمونه برنامه کار با RAR.Exe را براتون آماد کردم. فقط به این نکته توجه کنید.
چون این فایل در محیط DOS اجرا می شه از قوانین Dos هم پیروی می کنه , مثلا این که شما نمی توانید آدرسی را بدهید که در آن از کاراکتر فاصله (Space) (32) استفاده شده باشد. برای نمونه آدرسی مانند : C:\Program Files\Windows Media Player\DLIMPORT.EXE قابل قبول نمی باشد کد شما دچار مشکل می شود.
من در این نمونه شاخه ای در درایو C با نام Temp ایجاد کردم, فایل ها را آنجا کپی کردم و از آنجا به Rar تبدیل کردم.
راه دوم این است که آدرس را به نوع Dosی آن تبدیل کنید. برای نمونه :

C:\Program~1\Windows~1\DLIMPORT.EXE

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




موفق باشید.


:لبخند:

morika
یک شنبه 28 تیر 1388, 20:10 عصر
دست شما درد نکنه اما این برنامه که فقط فایل رو zip می کنه من می خوام فایل zip رو باز کنم
ممنون

siavash_n
دوشنبه 29 تیر 1388, 13:30 عصر
دست شما درد نکنه اما این برنامه که فقط فایل رو zip می کنه من می خوام فایل zip رو باز کنم
ممنون

با سلام.برای باز کردن و یا تولید فایل های zip اگه به دردتون بخوره خود مایکروسافت در کتابخانه های موجود در J# این امکانات رو قرار داده.اگه خواستین بگین تا براتون یه نمونه کد بزارم.

Mani_rf
سه شنبه 30 تیر 1388, 15:57 عصر
سلام. شرمنده فکر می کردم خودتون از پس Extract کردنش بر بیاید + اینکه چون وقت زیادی نداشتم و می خواستم سریع برنامه را براتون بگذارم دیگه Extract را براش ننوشتم.
ولی خوب این هم برنامه ای که هم Compress می کنه و هم Decompres فقط جزئیات را خواهشن خودتون تکمیل کنید یا بگید براتون می نویسم دیگه فقط زمان می بره.

morika
سه شنبه 30 تیر 1388, 17:44 عصر
آقا دم شما گرم خیلی حال دادی

mehrnoush
جمعه 16 مرداد 1388, 17:07 عصر
آقا تو این برنا متون که نمی شه فایلها رو رر کرد
کار نمی کنه؟

tondar2008
چهارشنبه 30 فروردین 1391, 22:43 عصر
من نتونستم با دستور های زیر rar.exe رو اجرا کنم. اطفا راهنمائی کنید.البته میخوام تو vb2008 کار کنم.

از اینا استفاده کردم ایراد "File not found " میده.


Shell("Rar.exe " & Application.StartupPath)



Dim ProcessProperties As New ProcessStartInfo
ProcessProperties.WorkingDirectory = Application.StartupPath
ProcessProperties.FileName = "rar.exe"
ProcessProperties.Arguments = "a"
ProcessProperties.WindowStyle = ProcessWindowStyle.Maximized
Dim myProcess As Process = Process.Start(ProcessProperties)

ممنون

tondar2008
پنج شنبه 31 فروردین 1391, 20:45 عصر
مشکل حل شد .ایراد در کد نویسی داشتم

tondar2008
چهارشنبه 06 اردیبهشت 1391, 19:55 عصر
چهطوری وقتی rar کارش تموم شد و میخواد پنجره خودشو ببنده من بفهمم ؟ . من از این متد استفاده میکنم


Dim ProcessProperties As New ProcessStartInfo
ProcessProperties.WorkingDirectory = Application.StartupPath
ProcessProperties.FileName = "rar.exe"
ProcessProperties.Arguments = "a"
ProcessProperties.WindowStyle = ProcessWindowStyle.Maximized
Dim myProcess As Process = Process.Start(ProcessProperties)

tondar2008
پنج شنبه 07 اردیبهشت 1391, 22:14 عصر
دوستان لطفا راهنمائی کنید .

وقتی rar رو اجرا میکنم بعد ازاتمام کار از پنجره خودش بیرون میاد و بر میگرده به برنامه من نمیخوام خودش بسته بشه چه طوری جلوشو بگیرم .

ممنون