PDA

View Full Version : مشکل در کپی فایل



mtsoft
سه شنبه 10 اردیبهشت 1392, 11:39 صبح
سلام خدمت همه اساتید محترم

من از متد file.copy برای کپی یه سری فایل استفاده میکنم اگه فایل های در پوشه مقصد نباشند کپی به راحتی انجام میشه و لی اگه باشند پیغام access denied میده من خاصیت overwrite رو true قرار دادم ولی بازم فایده نداشت

mousa1992
سه شنبه 10 اردیبهشت 1392, 12:59 عصر
access denied که ربطی به موجود بودن فایل ها تو پوشه مقصد نداره ! برنامه نمیتونه به فایل های اصلی دسترسی داشته باشه ینی ی پروسسی داره روی اونا کاری رو انجام میده

mtsoft
سه شنبه 10 اردیبهشت 1392, 13:28 عصر
کفتم که اگه فایل تو پوشه مقصد نباشه راحت کپی میکنه به محص اینکه فایل دوباره می خواد رو فایل قبلی کپی شه پیغام میده

کامبیز اسدزاده
سه شنبه 10 اردیبهشت 1392, 13:41 عصر
دوست عزیز در اون کدی که نوشتی یک خاصیت True در انتهای فایل کپی قرار بده تا قابلیت کپی در صورت وجود فایل رو برات فراهم کنه.

tooraj_azizi_1035
سه شنبه 10 اردیبهشت 1392, 13:52 عصر
To summarize the solution:
1. Make sure to use a fully qualified name, including the file name for both the destination and the source. (e.g. C:\Source\file.ext, C:\Destination\file.ext)
2. Visual Studio should run with the same access rights as the folders you are trying to access. Trying to access something like "My documents" and other locations that you don't need elevated rights to access shouldn't require you to elevate Visual Studio.
3. You should not have to "acquire" or change the permissions on files and folders that you can normally access from the same user that you are running VS in.



منبع:http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/f2e450cc-4fde-484c-8a1c-e86056544791/

erfan_urchin
سه شنبه 10 اردیبهشت 1392, 19:17 عصر
دوست عزیز access denied ربطی به این موضوع نداره که فایل وجود داره
چون اگه میخواست روی اون فایل قبلیه کپی کنه با true کردن overwrite باید درست بشه که شما میگید بازم نمیشه
این access denied مشکلش از یه جای دیگس

RED-C0DE
سه شنبه 10 اردیبهشت 1392, 22:30 عصر
باید پیغام خطا کامل رو بذارین. اگه exception می ده ببینید ممکنه داخل بدنه اون ، inner Exception هم مقدار داشته باشه..

ولی access denied ک می ده هم می تونه ب موجود بودن فایل مقصد ربط داشته باشه (ممکنه فایل مقصد موجود باشه و باز باشه، در اینصورت نتونید روش overwrite کنید) ، هم دسترسی شخصی ک داره عمل کپی رو انجام می ده در اون شاخه محدود باشه و مجوز نداشته باشه..

اگه تابعی برای این کار نوشتید و یا با فایلهای مورد نظر، قبل/بعد از کپی، کارهای دیگه ای هم انجام می دید (مثلا اگه فایلها رو باز کردید و Stream از روشون تو حافظه دارین) ، چک کنید حتما اونها رو Close کنید قبل از اینکه روشون overWrite کنید یا با دسترسی Exclusive بازشون نکرده باشید..

--
اگه تابعی مختص اینکار نوشتین ک علاوه بر File.Copy کار دیگه ای هم انجام می دید داخلش، اینجا بذارید تا بررسی ش

mtsoft
چهارشنبه 11 اردیبهشت 1392, 07:38 صبح
تشکر از همه دوستان به خاطر راهنماییهاشون ولی هم پوشه منبع و هم پوشه مقصد من دوتا مسیر کامل معمولی هستند و نیاز به دسترسی خاصی ندارند البته پوشه منبع من از سی دی هستش ببینید دفعه
اول که فایل تو پوشه مقصد نیست کپی انجام میشه و لی بعد که می خواد فایل رو قبلی کپی کنه خطا زیر رو میده من فقط از یه خط کد کپی استفاده کردم و هیج جایی فایل باز نیست و استفاده نمیشه.



Access to the path 'D:\Temp Document\test\icon.ico' is denied.


File.Copy(@"E:\Icon.ico", @"D:\Temp Document\test\icon.ico",true );