PDA

View Full Version : سوال: مشکل در rename کردن فایل



shahab.es
دوشنبه 03 فروردین 1394, 03:29 صبح
سلام به همه
خسته نباشید
من میخوام یه فایل رو تو پوشه ی bin/debug تغییر نام بدم
اینم کده من

کد:

System.IO.File.Move("|datadirectory|\file.accdb", "|datadirectory|\newfilename.exe");
اسم و پسوند فایل ها برای مثاله
حالا من از این کد استفاده میکنم
ارور میگیره
ممنون میشم اگه دوستان کمکم کنن
یا علی

SabaSabouhi
دوشنبه 03 فروردین 1394, 10:12 صبح
سلام به همه
خسته نباشید
من میخوام یه فایل رو تو پوشه ی bin/debug تغییر نام بدم
اینم کده من

کد:

System.IO.File.Move("|datadirectory|\file.accdb", "|datadirectory|\newfilename.exe");
اسم و پسوند فایل ها برای مثاله
حالا من از این کد استفاده میکنم
ارور میگیره
ممنون میشم اگه دوستان کمکم کنن
یا علی


سلام
طبیعی هست که خطا بده، شما می‌خوای فایل اجرایی برنامه‌ی خودت رو تغییر نام بدی، این فایل در حال اجرا هست و سیستم عامل اجازه‌ی تغییر نام بهت نمی‌ده.
برای تست از یه فایل دیگه استفاده کن.

صبا صبوحی

shahab.es
دوشنبه 03 فروردین 1394, 11:41 صبح
سلام
طبیعی هست که خطا بده، شما می‌خوای فایل اجرایی برنامه‌ی خودت رو تغییر نام بدی، این فایل در حال اجرا هست و سیستم عامل اجازه‌ی تغییر نام بهت نمی‌ده.
برای تست از یه فایل دیگه استفاده کن.

صبا صبوحی


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

Illegal characters in path.

بازم ممنون از توجهتون

danialafshari
دوشنبه 03 فروردین 1394, 13:19 عصر
با سلام
به شکل زیر تغییرش بدید
System.IO.File.Move(@"|datadirectory|\file.accdb", @"|datadirectory|\newfilename.exe");

shahab.es
دوشنبه 03 فروردین 1394, 13:35 عصر
با سلام
به شکل زیر تغییرش بدید
System.IO.File.Move(@"|datadirectory|\file.accdb", @"|datadirectory|\newfilename.exe");
ممنون از توجهت
این کارو انجام دادم
بازم ارور میگیره
ببینید
وقتی که ادرس فایل رو میدم
مثلا


System.IO.File.Move(@"H:\Visual Studio\rename\rename\rename\bin\Debug\file.accdb", @"H:\Visual Studio\rename\rename\rename\bin\Debug\newfilename. exe");

rename میشه
اما وقتی که دیتا دایرکتوری استفاده میکنم این کارو انجام نمیده

danialafshari
دوشنبه 03 فروردین 1394, 14:19 عصر
System.IO.
File.Move(Environment.CurrentDirectory + @"\file.accdb", Environment.CurrentDirectory + @"\newfilename.exe");

تگ سی شارپ:
System.IO.
File.Move(Environment.CurrentDirectory + @"\file.accdb", Environment.CurrentDirectory + @"\newfilename.exe");

shahab.es
دوشنبه 03 فروردین 1394, 15:21 عصر
خیلی ممنونم از راهنمایی دقیقت
ارور نداد
کارمم را افتاد
مرسی

ehsan5749
جمعه 08 خرداد 1394, 22:59 عصر
سلام
من مشکل مشابهی دارم بشرح ذیل:

برای اینکه در نگاه اول دیتابیس من در فولدر برنامه نمایان نباشد ، پسوند آن را به dll تغییر داده ام و در بدو اجرای برنامه آن را با دستور زیر به mdb تغییر نام می دهم:

System.IO.File.Move("test.dll", "test.mdb");

و زمان خروج از برنامه برای تغییرنام مجدد از دستور زیر استفاده می کنم :

System.IO.File.Move("test.mdb", "test.dll");

برنامه موقع اجرا در ویندوز XP بدون مشکل اجرا می شود (یا حداقل تاکنون موردی ندیدم که پیغام خطایی نمایش داده شود و برنامه همیشه اجرا شده)

اما موقع اجرا در ویندوز 7 با پیغام زیر مواجه می شود (با اینکه نسخه مورد نیاز Microsoft.NET Framework نصب بوده است)

Microsoft.NET Framework
unhandled exception error has occurred in your application
Access to the path is denied

تصویر خطا:
131784
(لینک تصویر (http://s3.picofile.com/file/8191011126/Error.jpg))


اینم از Details:


See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.


************** Exception Text **************
System.UnauthorizedAccessException: Access to the path is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.__Error.WinIOError()
at System.IO.File.Move(String sourceFileName, String destFileName)
at EhsanProgram.Form1.OpenAccessFile(String source) in C:\Users\HP\Downloads\Ehsan\Ehsan\Form1.cs:line 341
at EhsanProgram.Form1.ReadDefaultDatabase() in C:\Users\HP\Downloads\Ehsan\Ehsan\Form1.cs:line 335
at EhsanProgram.Form1..ctor() in C:\Users\HP\Downloads\Ehsan\Ehsan\Form1.cs:line 51
at EhsanProgram.Form3.Form3_Load(Object sender, EventArgs e) in C:\Users\HP\Downloads\Ehsan\Ehsan\Form3.cs:line 175
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Mes sage& m)
at System.Windows.Forms.ContainerControl.WndProc(Mess age& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

قطعا مشکل از Rename کردن است ، چون برای تست ، قید پنهان سازی را زدم و قسمت Rename کردن را حذف کردم و برنامه بدون مشکل اجرا شد.

به نظر شما راه حل چیست؟

Javad_raouf
شنبه 09 خرداد 1394, 11:41 صبح
یا برنامت رو Run As Administrator اجرا کن
یا پوشته ای که نرم افزار و بانک اطلاعاتی درونش قرار داره رو پرمیشنش رو به Everyone مجوز FullControl بده
مشکل 90 درصد حل میشه

اینجا نوشته چطوری به صورت دستی می تونی به یک پوشه پرمیشن بدی:
https://msdn.microsoft.com/en-us/library/bb727008.aspx