درود
یه برنامه ای قرار بود ما بنویسیم که یه جای کار باید اسم یک فایل رو عوض می کردم و روش اسم استانداردی که تعریف شده رو تنظیم می کردم، اسم عوض کردن هم همه می دونند که چیز خاصی نداره با دستور ساده File.Move و قرار دادن آدرس اسم قدیم و آدرس اسم جدید اسم تغییر می کند به این صورت:
string oldfilename = @"D:\FolderName\01.txt";
string newfilename = @"D:\FolderName\02.txt";
System.IO.File.Move(oldfilename, newfilename);
خب همانطور که مشاهده می کنید همه چی ساده است ، اما زمانی که برنامه اجرا می شود و دستور File.Move می خواهد اجرا شود با Exception زیر مواجه مواجه می شدم:
Exception Details: System.NotSupportedException: The given path's format is not supported.
سیستم آدرس دهی رو عوض کردم و جای @ از دوتا // استفاده کردم باز هم خطا رفع نشد.
همانطور که میدونید در ویندوز بعضی کاراکتر ها در آدرس فایل نباید وجود داشته باشد که عبارتند از:
< (less than) > (greater than) : (colon) " (double quote) / (forward slash) \ (backslash) | (vertical bar or pipe) ? (question mark) * (asterisk)
اما این ها هم در کد ما وجود ندارد!
از متد Path.Combine هم استفاده کردم باز مشکل رفع نشد!
string path1 = "D:\\FolderName\\";
string path2 = "01.txt";
string combination = Path.Combine(path1 , path2 );
این کار در ویندوز 10 و ویژوآل استدیو 2015 آپدیت 3 انجام میگرفته که حالا در نسخه های بعدی و به روزرسانی های بعدی که برای جفتشون بیاد من باز تست میکنم و اگر این مشکل برطرف شده بود این پست را به روز می کنم.
اگر راه کار دیگه ای برای این موضوع دارید در نظرات اعلام کنید.