PDA

View Full Version : سوال: ادغام چند فایل داخل یک فایل



koorosh-soft
یک شنبه 31 اردیبهشت 1391, 01:20 صبح
سلام دوستان !
از چه راهی میشه چند تا فایل رو داخل یک فایل قرار داد ! مثل فایل های ISO که بشه امکاناتی مثل Password برای باز کردنش گذاشت !؟
هدف اصلیم پسورد گذاشتن برای یک فولدر هست !
ممنون میشم کمک کنید :)

ROSTAM2
یک شنبه 31 اردیبهشت 1391, 01:55 صبح
از پایگاه داده برای ذخیره سازی اطلاعات فایل ها بصورت باینری استفاده کنید جستجو کنید این برای این کار اطلاعات پیدا می کنید، برای پسورد هم جدول مجزایی توی منبع اطلاعاتتون باید برای پسورد بسازید

یکی از مشکلات این روش بالاتر رفتن حجم فایل نسبت به فایلهایی است که درون اون جاسازی کردید

koorosh-soft
یک شنبه 31 اردیبهشت 1391, 02:10 صبح
از پایگاه داده برای ذخیره سازی اطلاعات فایل ها بصورت باینری استفاده کنید جستجو کنید این برای این کار اطلاعات پیدا می کنید، برای پسورد هم جدول مجزایی توی منبع اطلاعاتتون باید برای پسورد بسازید

یکی از مشکلات این روش بالاتر رفتن حجم فایل نسبت به فایلهایی است که درون اون جاسازی کردید

به جز پایگاه راه دیگه ای نیست ؟
کلا چند تا فایل رو چه جوری میشه باهم یکی کرد ؟ مثلا داخل فایل 3.exe متن / عکس / ... باشه بعد از باز شدن برنامه و گرفتن پسورد فایل ها از داخل 3.exe خارج شه ! یه چیزی شبیه Binder

ROSTAM2
یک شنبه 31 اردیبهشت 1391, 02:54 صبح
Binder رو که متذکر شدی نمی شناسم!

ولی منبع اطلاعاتی که اطلاعات فایلها رو بهمراه داره می شه با ارسال یک یا چند پارامتر به برنامه اطلاعات خودشو توی برنامه هدف نشون بده

بالفرض مثال من فایلی ساختم که حاوی تصاویر زیادی بود که با ارسال پارامتر به برنامه می تونستم تصاویر رو تماشا کنم و اگر نیاز داشتم استخراج کنم
و همینطور برای آهنگ ها هم همین کار و کردم که می شد آهنگ رو شنید و یا استخراج کرد

koorosh-soft
یک شنبه 31 اردیبهشت 1391, 03:23 صبح
بانک برای یه نرم افزار حدودا پرتابل دردسر ساز نیست ؟ راهی نیست که یک Extension مخصوص برنامه داشته باشیم ؟ و فایل ها رو تو اون به صورت باینری ذخیره کنیم ؟

ROSTAM2
یک شنبه 31 اردیبهشت 1391, 03:56 صبح
همون برای پایگاه داده می شه از قالب (Extension) دلخواه برای ذخیره سازی استفاده کرد به اون (از طریق رجیستری) آیکون داد و همینطور دستور ارسال پارامتر و نمایش اطلاعات اون توی برنامه ای که به هدف ساخت این نوع قالب از فایل و نمایش اطلاعات اون ایجاد شده

M.KH-SH
یک شنبه 31 اردیبهشت 1391, 08:09 صبح
دوست عزیز اگه برای ست آپ سازی میخوای این کار رو انجام بدی چند راه داری

راه اول:: ذخیره فایل ها در recourse برنامه و راه دوم ذخیره فایل ها به صورت binary در یک بانک هستش

حالا شما 900 تا فایل exe هم داشته باشی به راحتی میتونی این کار رو انجام بدی

دوست عزیز برای اینکه چندین folder هم داخل این فایل باشند باید در کد نویسی این folder ها رو بسازین تا مشکلی براتون ایجاد نشه

شما از بانک اکسس و یا از sql compact میتونین استفاده کنین و به راحتی فایل ها رو انتقال بدین

koorosh-soft
یک شنبه 31 اردیبهشت 1391, 23:59 عصر
دوست عزیز اگه برای ست آپ سازی میخوای این کار رو انجام بدی چند راه داری

راه اول:: ذخیره فایل ها در recourse برنامه و راه دوم ذخیره فایل ها به صورت binary در یک بانک هستش

حالا شما 900 تا فایل exe هم داشته باشی به راحتی میتونی این کار رو انجام بدی

دوست عزیز برای اینکه چندین folder هم داخل این فایل باشند باید در کد نویسی این folder ها رو بسازین تا مشکلی براتون ایجاد نشه

شما از بانک اکسس و یا از sql compact میتونین استفاده کنین و به راحتی فایل ها رو انتقال بدین

تو ریسورس برنامه نمیخام اضافه کنم ! باید تو فایل جدا باشه ! از طرفی بانک هم نمیخام چون دردسر سازه !

M.KH-SH
دوشنبه 01 خرداد 1391, 06:44 صبح
خوب دوست عزیز برای ساخت پوشه ها اگه نگران هستی میتونی تعداد فولدر رو تشخیص بدی از io.directory و بعد هنگام ذخیره جلوی هر فایل نام پوشه رو ذخیره کن و در انتها به راحتی میتونی پوشه ها رو درست کنی

برای ذخیره در خود فولدر سیستم میگردم اگه چیزی پیدا کردن میگم حتما

mehdi.mousavi
دوشنبه 01 خرداد 1391, 23:59 عصر
سلام دوستان ! از چه راهی میشه چند تا فایل رو داخل یک فایل قرار داد ! مثل فایل های ISO که بشه امکاناتی مثل Password برای باز کردنش گذاشت !؟ هدف اصلیم پسورد گذاشتن برای یک فولدر هست ! ممنون میشم کمک کنید :)

سلام.
برای اینکه چند فایل رو داخل یک فایل قرار بدید، می تونید از کلاس Package استفاده کنید (و در صورت نیاز، حتی فایل ها رو Compress شده در اون قرار بدید). بطور نمونه کد زیر، کلیه فایل های موجود در d:\folder رو بصورت یک فایل با دنباله zip روی d:\ قرار میده:

Public Sub Compress()
Dim output As String = "d:\output.zip"

Dim filenames As String() = Directory.GetFiles("d:\folder\", "*.*", SearchOption.AllDirectories)
Using package As Package = Package.Open(output)
For Each filename As String In filenames
Dim data As Byte() = File.ReadAllBytes(filename)

Dim uri As Uri = PackUriHelper.CreatePartUri(New Uri(filename, UriKind.Relative))
Dim packagePart As PackagePart = package.CreatePart(uri, System.Net.Mime.MediaTypeNames.Application.Octet, CompressionOption.NotCompressed)

packagePart.GetStream().Write(data, 0, data.Length)
Next
End Using
End Sub


دقت کنید که WindowBase.dll رو باید به لیست Reference های برنامه اضافه کنید. بدین ترتیب فایل ها رو می تونید در Compound File ای به اسم output.zip قرار بدید... اما متاسفانه کلاس Package امکان رمز گذاری روی فایل رو بهتون نمیده. برای اینکار نیز می تونید از کلاس های موجود در .NET Framework براحتی استفاده کنید تا فایل رو رمزگذاری کنید... فراموش نکنید که System.IO.Packaging namespace رو نیز باید import کنید.

موفق باشید.

koorosh-soft
سه شنبه 02 خرداد 1391, 13:16 عصر
سلام.
برای اینکه چند فایل رو داخل یک فایل قرار بدید، می تونید از کلاس Package استفاده کنید (و در صورت نیاز، حتی فایل ها رو Compress شده در اون قرار بدید). بطور نمونه کد زیر، کلیه فایل های موجود در d:\folder رو بصورت یک فایل با دنباله zip روی d:\ قرار میده:

Public Sub Compress()
Dim output As String = "d:\output.zip"

Dim filenames As String() = Directory.GetFiles("d:\folder\", "*.*", SearchOption.AllDirectories)
Using package As Package = Package.Open(output)
For Each filename As String In filenames
Dim data As Byte() = File.ReadAllBytes(filename)

Dim uri As Uri = PackUriHelper.CreatePartUri(New Uri(filename, UriKind.Relative))
Dim packagePart As PackagePart = package.CreatePart(uri, System.Net.Mime.MediaTypeNames.Application.Octet, CompressionOption.NotCompressed)

packagePart.GetStream().Write(data, 0, data.Length)
Next
End Using
End Sub


دقت کنید که WindowBase.dll رو باید به لیست Reference های برنامه اضافه کنید. بدین ترتیب فایل ها رو می تونید در Compound File ای به اسم output.zip قرار بدید... اما متاسفانه کلاس Package امکان رمز گذاری روی فایل رو بهتون نمیده. برای اینکار نیز می تونید از کلاس های موجود در .NET Framework براحتی استفاده کنید تا فایل رو رمزگذاری کنید... فراموش نکنید که System.IO.Packaging namespace رو نیز باید import کنید.

موفق باشید.

× خیلی عالی بود !
× درباره System.IO.BufferedStream میشه یه مثال بزنید ! مثال های MSDN که به لطف خدا وحشتناک پیچیدست !