PDA

View Full Version : ارسال و دريافت فايل در lan



vahid_d_0101
دوشنبه 02 دی 1387, 18:20 عصر
با سلام
اگه برنامه هاي كنترل شبكه را ديده باشيد يه قسمت داره كه وقتي اونو ميزنيم يه صفحه باز ميشه و مثلا درايو d يه كامپيوتر ديگه را انتخاب ميكنيم و از اون فايل به كامپيوتر خودمون انتقال ميديم و بلعكس
ببينيد من ميخوام تمام فايل هاي داخل درايو d‌را ببينم و هر كردوم را خواستم انتخاب بكنم و روي سيستم خودم بريزم
چيزي هم كه فهميدم اينه كه مثلا درايو d‌يه شبكه اين جوري شناخته ميشه تو lan


\\192.168.1.2\d (file://192.168.1.2/d):

mpmsoft
دوشنبه 02 دی 1387, 18:53 عصر
دوست عزیز شما یا باید درایو و یا پوشه مورد نظر رو ابتدا در داخل همون کامپیوتر Share کنید تا بقیه کاربران البته با تنظیم سطح دسترسی بتونند اون فایل رو کپی کنند

ویا یک نرم افزار Client / Server بنویسید تا اون بدون نیاز به Share کردن فایل رو براتون بفرسته

vahid_d_0101
دوشنبه 02 دی 1387, 21:02 عصر
خوب منم همون كلاينت و سرور را ميخوام كه اون كارو بكنه تو سايت پر ديدم ولي همشون بايد ادرس فايلي را كه ميخواستيم كپي كنيم را وارد كنيم ولي من ميخوام مثلا تمام پوشه هايي كه تو درايو c وجو داره را ببينم اونارو باز كنم و هر كردوم را خواستم روي كامپيوتر سرور بريزم
اگه يه سورس مقدماتي هم بديد خيلي خيلي ممنون ميشم

.:KeihanCPU:.
سه شنبه 03 دی 1387, 14:01 عصر
اگه تا حالا در زمینه ارسال فایل به صورت معمولی کار نکردین پیشهاد میدم ابتدا اونو یاد بگیرین

vahid_d_0101
سه شنبه 03 دی 1387, 14:44 عصر
یه سورس دارم از همین سایت گرفتم که ادرس فایل کلاینت را میدیم و ادرس جایی که میخواهیم در سرور ذخیره بشه هم میدیم بعد اون فایل را به سرور منتقل میکنه حالا من میخوام خودم بتون هر فایلی دلم میخواد از رو کلاینت انتخاب و به سرور منتقل کنم و بلعکس
دیگه فکر نکنم چیزی نگفته مونده باشه

.:KeihanCPU:.
سه شنبه 03 دی 1387, 15:29 عصر
دوست عزیز بدین ترتیب شما باید لیستی از فایلها و فولدرهای کلاینت هم داشته باشی.
یه راهنمایی میکنم بقیش با خودت.
روشهایی برای بدست آوردن اسامی فایلها و فولدرها وجود داره.
مثلا استفاده از تابع Dir و یا کمپوننت Filelist box و DirListbox.
بعد از اینکه یه رشته از اسامی فایلها و فولدرها بدست آوردی میتونی این رشته رو به سرور بفرستی.
حالا در سرور هر فایلی رو خواستی یه درخواست به کلاینت میفرستی و اسم فایل رو هم ذکر میکنی.
دیگه فکر نکم چیزی مونده باشه :چشمک:

vahid_d_0101
سه شنبه 03 دی 1387, 15:49 عصر
خوب من میخوام بتونم از روی سرور روی فایلهایی که مثلا تو درایو c وجود داره کلیک کنم و اون فولدر را باز کنم و اگه فایل دیگری تو اون پوشه بود اونو انتخاب کنم

.:KeihanCPU:.
سه شنبه 03 دی 1387, 15:52 عصر
بهتر نیست یکم خودت فکر کنی.
خوب مثلا میخوای بری تو درایو C
یه درخواست به کلاینت میدی که میخوام درایو c رو نگاه کنم.
اونم یه لیست از فایلهای تو درایو c میگیره و بهت میده.

vahid_d_0101
سه شنبه 03 دی 1387, 15:56 عصر
ببین اخه برنامه ای که من دیدم مثلا اگه تو درایو c عکس وجود داشته باشه اون عکس به صورت کوچیک نشون داده میشه و اگر 100 تا عکس هم باشه اصلا سرعت نمیگیره و همشونو به صورت کوچیک یا همون Thumbnails ویندوز نشون میده
در ضمن اگه مثلا وقتی من دارم از کلاینت فایل میگیرم و تو درایو c اون فایل دیگه ای ریخته بشه اون برنامه به سرعت اون فایل را نشونم میده

.:KeihanCPU:.
سه شنبه 03 دی 1387, 20:50 عصر
میخوای این برنامه رو کامل یکی واست بنویسه بهت تقدیم کنه.
آخه دوست من اینطوری نمیشه.شما قدم به قدم برو جلو همشو یاد میگیری

vahid_d_0101
سه شنبه 03 دی 1387, 22:28 عصر
اقا ببخشید من چه جوری نام تمام فایلها را برای سرور ارسال کنم حالا اومدیم تو یه درایو 500 تا فایل بود اون وقت با فکری که شما کردید فکر نمی کنید ترافیک شبکه زیاد بشه و برنامه هنگ کنه

.:KeihanCPU:.
سه شنبه 03 دی 1387, 22:41 عصر
دوست عزیز 1000 تا فایلم باشه شما میخواین اسمشونو ارسال کنید نه خودشونو.
فکر میکنید اسم 1000 تا فایل چه حجمی داره

vahid_d_0101
سه شنبه 03 دی 1387, 22:54 عصر
اگه یه کم با شبکه کار کرده باشید میفهمید وقتی تو یه شبکه بزرگ 10 تا برنامه در حال اجرا باشه و خواسته باشیم اسم 100 تا فایل را ارسال کنیم شاید برای شما زیاد تو برنامه محسوس نباشه ولی برای برنامه های دیگه میتونه مشکل ایجاد کنه
ببینید تمام برنامه هایی که من دیدم این جور کار نمیکنه یقین دارم از روش دیگه ای برای ارسال نام ها استفاده میکنه برای مثال شما درایو D یکی از کلاینت هارا با خود ویندوز Shar کنید و تو سرور به اون درایو برید و رو فایل ها کلیک کنید وارد فایلها بشید و یا یه فایل تو درایو D کلاینت درست کنید اون وقت میفهمید که بر اساس نام انها کار نمیکنه و اصول اون جور دیگه ای است

.:KeihanCPU:.
سه شنبه 03 دی 1387, 22:58 عصر
بر اساس نام انها کار نمیکنه و اصول اون جور دیگه ای است

این روش پیشنهادی من بود.شما راه بهتری سراغ دارین؟!!!
--------------------------------------------------------------------------
به نظر شما یه بازی مثل کانتر در ثانیه چه مقدار اطلاعات به 10 تا کامپیوتر دیگه میفرسته؟

vahid_d_0101
سه شنبه 03 دی 1387, 23:15 عصر
من فکر کنم از یه کامپوننت استفاده شده که این کار ها را میکنه اخه بببینید اگه تو یه فولدر عکس باشه اون برنامه میاد عکس های کوچیک شده اش را نشان میده و یا ایکون تمام اون فایلها تو برنامه داره نشون میده یعنی اگه یه فایل exe تو یه فولدر باشه اون برنامه مثل اون کامپیوتر کلاینت تمام مشخصات فایل را نشون میده حتی ایکون برنامه و اگر خواستیم اونو تو کامپیوتر سرور ارسالش میکنیم حالا فکر میکنید من باید یکی یکی ایکون تمام اون فایلها را برای سرور ارسال کنم به نظر شما کار مطقی هست که من تمام اون ایکون ها و نامها را برای سرور بفرستم

r0ot$harp
چهارشنبه 04 دی 1387, 11:54 صبح
دوست عزیز اینم خدمت شما :



Private Sub Form_Load()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colShares = objWMIService.ExecQuery("Select * from Win32_Share")

For Each objShare In colShares

If objShare.Type = 0 Then
Debug.Print "Allow Maximum: " & objShare.AllowMaximum
Debug.Print "Caption: " & objShare.Caption
Debug.Print "Maximum Allowed: " & objShare.MaximumAllowed
Debug.Print "Name: " & objShare.Name
Debug.Print "Path: " & objShare.Path
Debug.Print "Type: " & objShare.Type
Debug.Print vbNewLine
End If

Next

End Sub



باتشکر احسان

vahid_d_0101
چهارشنبه 04 دی 1387, 16:58 عصر
سلام اقا احسان کم پیدا
میتونی یه کم توضیح بدی من یه کم دارم گیج میشم

vahid_d_0101
دوشنبه 09 دی 1387, 00:31 صبح
اقا احسان فکر نکنم سوال مشکلی پرسیدم من فقط یه راهنمایی در مورد کد شما میخواستم

vahid_d_0101
شنبه 14 دی 1387, 16:44 عصر
اقا احسان اگه خودتون در مورد اين كد اطلاعاتي داريد بزاريد با همچنان تو كفيم

vahid_d_0101
سه شنبه 17 دی 1387, 17:35 عصر
کسی نبود جواب بده من هنوز منتظرم

xxxxx_xxxxx
پنج شنبه 26 دی 1387, 05:12 صبح
سلام دوستان.

براي اجراي كد فوق بايد گزينه زير را در قسمت References فعال كنيد:
WMI ADSI Extension Type Library

موفق باشيد/