PDA

View Full Version : گفتگو: مشکل با space در نام فایل



djscsi
یک شنبه 18 مرداد 1388, 22:37 عصر
دوستان من در برنامه ای از process استفاده میکنم که در اون دستووری با نام فایل سر و کار داره مثلا پاک کردن فایلی که نامش رو از ورودی میگیره
حالا مشکل اینجاست که برا فایلهایی که در نام انها space وجود داره کار نمیکنه ولی در مورد بقیه مشکلی نیست
ممنون میشم کمک کنید

djscsi
دوشنبه 19 مرداد 1388, 15:02 عصر
کمممممممممممممممممممممممم ممممک
کسی با این مشکل روبرو نشده تا حالا؟

Open-Source
دوشنبه 19 مرداد 1388, 17:44 عصر
نه من هنوز با این مشکل رو به رو نشدم.

کدت رو قرار بده.

djscsi
دوشنبه 19 مرداد 1388, 22:19 عصر
مثلا
process.start("del","d:\\new folder")

com_eng_abasszadeh
سه شنبه 20 مرداد 1388, 17:14 عصر
خب اگر شما میخوای فایلی رو حذف کنید چرا از این روش میرید!!!!!!!!!!!
از این کد میتونی برای حذف فایل استفاده کنی:

;("توی این قسمت نام فایلت رو وارد کن")System.IO.File.Delete

Reza_Yarahmadi
سه شنبه 20 مرداد 1388, 18:38 عصر
مثلا کد:
process.start("del","d:\\new folder")

طریقه استفاده از متد Start اشتباه است. وگر نه مشکلی در استفاده از فایلهایی که بین کلماتش فاصله هست وجود نداره!
پارامتر اول از متد Start معمولا آدرس فایل مورد نظر است که اگه توی دایرکتوری System32 باشه فقط اسم فایل رو قید کردن کفایت میکنه در غیر اینصورت باید آدرس کامل فایل رو بنویسید.
پارامتر دوم هم معمولا برای ارسال آرگومان به فایل مورد نظر استفاده میشه (در صورتی که نیاز به آرگومان نیاز داشته باشه)
مثال :

System.Diagnostics.Process.Start("mspaint.exe");

System.Diagnostics.Process.Start("C:\Program Files\Mozilla Firefox\FireFox.exe", "www.barnamenevis.org");


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

;("توی این قسمت نام فایلت رو وارد کن")System.IO.File.Delete


فکر کنم منظور دوستم خارج کردن برنامه از رم و یا به عبارت دیگه بستن برنامه بود!

saed2006
سه شنبه 20 مرداد 1388, 19:26 عصر
دوست عزیز ببین این دستور


System.IO.File.Delete(@"c:\\new folder");

کارت رو راه می اندازه

djscsi
سه شنبه 20 مرداد 1388, 20:40 عصر
ببینید فکر کنم منظورمو اشتباه فهمیدید اون فقط یه مثال بود که اینجوری حل میشه ولی این چی؟
من دو تا فولدر در درایو d دارم به نامهای ab و a b
حالا این دستور به درستی اجرا میشه

Process.Start("subst", "z: d://ab");
ولی این نه

Process.Start("subst", "z: d://a b");
خوب تنها فرق اونها وجود space در نام یکی از انهاست
حالا این مثال فکرکنم بهتر باشه
ممنون

saed2006
سه شنبه 20 مرداد 1388, 21:01 عصر
ببینید فکر کنم منظورمو اشتباه فهمیدید اون فقط یه مثال بود که اینجوری حل میشه ولی این چی؟
من دو تا فولدر در درایو d دارم به نامهای ab و a b
حالا این دستور به درستی اجرا میشه

Process.Start("subst", "z: d://ab");
ولی این نه

Process.Start("subst", "z: d://a b");
خوب تنها فرق اونها وجود space در نام یکی از انهاست
حالا این مثال فکرکنم بهتر باشه
ممنون

این طوری بنویس

Process.Start("subst", @"z: d://a b");

Sajjad.Aghapour
سه شنبه 20 مرداد 1388, 21:36 عصر
معمولا در دستورات داس فایل هایی که دارای space هست رو داخل "" میذارن....


Process.Start("del" , "\"d:\\new folder\"");

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

djscsi
چهارشنبه 21 مرداد 1388, 10:16 صبح
ممنون اینو امتحان کرده بودم جواب نبود

Process.Start("subst", @"z: d://a b");
اینم که به کل اشتباهه

Process.Start("del" , "\"d:\\new folder\"");

djscsi
پنج شنبه 22 مرداد 1388, 22:27 عصر
يعني كسي همجين مشكلي نداشته؟

Sajjad.Aghapour
جمعه 23 مرداد 1388, 21:08 عصر
اینم که به کل اشتباهه

Process.Start("del" , "\"d:\\new folder\"");

مطمئنید؟
دستور زیر کاملا درسته و درایو مجازی هم ساخته میشه.نمی دونم شما چطوری این کار رو کردید؟



Process.Start("subst", "z: \"d:\\new folder\"");


و این در حالی هستش که در دستور زیر هیچ درایوی ساخته نمیشه...



Process.Start("subst", "z: d:\\new folder");