PDA

View Full Version : سوال: از بین بردن فاصله های مسیر فایل



forodo
دوشنبه 13 آبان 1392, 13:16 عصر
سلام
چطوری می تونم فاصله های مثلاً E:\New folder 5 رو از بین ببرم؟
تو اینترنت سرچ کردم فقط فهمیدم که باید مسیر به این شکل بشه : E:\New~folder~5
ولی کدشو پیدا نکردم.
لطفاً راهنمایی کنید.
با تشکر

mehrdad1991h
دوشنبه 13 آبان 1392, 13:37 عصر
سلام
چطوری می تونم فاصله های مثلاً E:\New folder 5 رو از بین ببرم؟
تو اینترنت سرچ کردم فقط فهمیدم که باید مسیر به این شکل بشه : E:\New~folder~5
ولی کدشو پیدا نکردم.
لطفاً راهنمایی کنید.
با تشکر


هاان ؟
من که نفهمیدم چی میگی.....
ولی اینجوری ریپلیس کن
مثلا این را داری
string path = @"E:\New folder 5";
در ادامه اش زیرش بنویس
path = path.replace(" ","~");
این اونی میشه که شما نوشتی
منتها اگر بهت درست کار نمیده ادرس حتما به خاطر اینه که @ نگذاشتی یا به جای @ باید هر جا \ هست بکنی \\ حالا نمیدونم منظورت چی بوده
امیدوارم این 2 مطلب کارت را راه بیاندازد
موفق باشی

forodo
دوشنبه 13 آبان 1392, 17:57 عصر
آخه وقتی کد زیر رو می نویسم درست اجرا میشه:

string MasireBarname = AppDomain.CurrentDomain.BaseDirectory;
System.Diagnostics.Process.Start("wmplayer.exe", MasireBarname + "NewFolder5\\aaa.mpg");


ولی وقتی اینو می نویسم ارور میده:

string MasireBarname = AppDomain.CurrentDomain.BaseDirectory;
System.Diagnostics.Process.Start("wmplayer.exe", MasireBarname + "New Folder 5\\aaa.mpg");

و این ارور رو می ده:


112550

Mahmoud.Afrad
دوشنبه 13 آبان 1392, 18:47 عصر
وقتی در مسیر فایل space وجود داره برای اجرای اون فایل، مسیر باید کامل و بدون دستکاری باشه و نباید spaceها رو حذف کنی. نمیدونم چرا میخواهی این کار رو انجام بدی؟

forodo
دوشنبه 13 آبان 1392, 19:16 عصر
وقتی در مسیر فایل space وجود داره برای اجرای اون فایل، مسیر باید کامل و بدون دستکاری باشه و نباید spaceها رو حذف کنی. نمیدونم چرا میخواهی این کار رو انجام بدی؟
توی این تاپیک (http://barnamenevis.org/showthread.php?425979-%D9%BE%DB%8C%D8%AF%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%D9%86%D8%A7%D9%85-%D8%AF%DB%8C-%D9%88%DB%8C-%D8%AF%DB%8C-%D8%B1%D8%A7%D9%85-%28-DVD-ROM-%29-%D9%88-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%A7%D8%AE%D9%84-%D8%A2%D9%86) کامل توضیح دادم ولی کسی جواب نداد گفتم شاید به خاطر این جواب نمی دن که باید سوالم رو چون چیز دیگریست در تاپیک جدید بپرسم.
من یک فایلی رو کنار EXE برنامه گذاشتم ( چرا اینکاررو کردم در این تاپیک (http://barnamenevis.org/showthread.php?425979-%D9%BE%DB%8C%D8%AF%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%D9%86%D8%A7%D9%85-%D8%AF%DB%8C-%D9%88%DB%8C-%D8%AF%DB%8C-%D8%B1%D8%A7%D9%85-%28-DVD-ROM-%29-%D9%88-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%A7%D8%AE%D9%84-%D8%A2%D9%86)عرض کردم ) و اون رو گفتم در برنامه Windows Media Player اجرا کن.
حالا داخل Desktop من یک New Folder درست کردم و Exe و فایل تصویری رو داخل اون انداختم و exe رو اجرا کردم و ارور ( عکس ) بالا رو گرفت.
ولی وقتی دستی فاصله های New Folder رو از بین بردم ( NewFolder ) فایل تصویری بدون هیچ مشکلی اجرا شد.

توی اینترنت سرچ کردم و گفته بود باید این فاصله ها با یه چیزی پر بشه مثلاً New Folder باید بشه درست یادم نیست NewFol~d یا یه همچین چیزی. کدها رو گذاشتم ولی کار نکرد.
کلاً توی مسیر فایل نباید هیچ فاصله ای بین کلمات باشه.

امیدوارم منظور بنده رو متوجه شده باشید.
اگر باز متوجه نشدید بفرمائید تا بیشتر توضیح بدم.

forodo
دوشنبه 13 آبان 1392, 19:50 عصر
دوباره گشتم و اینو پیدا کردم: (http://stackoverflow.com/questions/4112736/c-sharp-trim-application-path)

string MasireBarname = @"E:\New folder 5";
Uri path = new Uri(MasireBarname);
Uri workingDirectory = new Uri(System.IO.Directory.GetCurrentDirectory());
string relativePath = workingDirectory.MakeRelativeUri(path).ToString();

ولی یه مشکلی که داره اینه وقتی میگم relativePath رو نشونم بده اینه:

../../../../New%20folder%205

ولی من اینو می خوام:

E:\\New%20folder%205

علی متقی پور
دوشنبه 13 آبان 1392, 20:29 عصر
با سلام

هیچ دلیل برای از بین بردن فاصله ها وجود نداره. این حالت 20 درصد برای آدرس های اینترنتیه نه آدرس فایل فیزیکی روی هارد.
ضمنا شما چرا از ابتدا نام فولدر را بدون فاصله نمینویسید که اصلا این مسائل پیش نیاد؟

shahryari
دوشنبه 13 آبان 1392, 20:47 عصر
در این جور مواقع قبل و بعد آدرس متنی کارکتر 34 را که همان دابل کوتیشن است را اضافه کنید
char c34 = (char)34;
string path = @"E:\New folder 5";
path = c34 + path + c34;

مثال : E:\New folder 5 را اینگونه برمیگرداند "E:\New folder 5"

forodo
دوشنبه 13 آبان 1392, 21:00 عصر
با سلام

هیچ دلیل برای از بین بردن فاصله ها وجود نداره. این حالت 20 درصد برای آدرس های اینترنتیه نه آدرس فایل فیزیکی روی هارد.
ضمنا شما چرا از باتدا نام فولدر را بدون فاصله نمینویسید که اصلا این مسائل پیش نیاد؟
اونایی که خودم درست می کنم مشکلی نیست بدون فاصله انجام می دم ولی می خوام برنامه ای بنویسم که فیلمهای داخل هاردم رو با ژانرهای مختلف جدا کنه و اونی که می خوام رو از توی برنامه در داخل برنامه ای که براش تعریف می کنم اجرا کنه. خوب من این فولدرها و فایل ها رو خیلی وقت که درست کردم و حالا که می خوام این برنامه رو بنویسم می ترسم به این مشکل برخورد کنم.

اگر حالت 20 درصد بهم جواب بده خوب خیلی خوبه. کارم راه می افته.

forodo
دوشنبه 13 آبان 1392, 21:09 عصر
در این جور مواقع قبل و بعد آدرس متنی کارکتر 34 را که همان دابل کوتیشن است را اضافه کنید
char c34 = (char)34;
string path = @"E:\New folder 5";
path = c34 + path + c34;

مثال : E:\New folder 5 را اینگونه برمیگرداند "E:\New folder 5"
خدا خیرت بده.
درست شد.
عجب چیز ساده و باحالی بود ( معما چو حل گشت آسان شود )

char c34 = (char)34;
string path = @"E:\Films\Film\Action\Subtitle\A Good Day To Die Hard\A Good Day to Die Hard.mkv";
path = c34 + path + c34;
System.Diagnostics.Process.Start("wmplayer.exe", path);