System.IO.DirectoryNotFoundException от File.Move - PullRequest
6 голосов
/ 12 августа 2011

Просто быстрый вопрос (надеюсь): Когда я использую File.Move, он выдает ошибку:

System.IO.DirectoryNotFoundException was unhandled by user code
  Message=Could not find a part of the path.
  Source=mscorlib
  StackTrace:
       at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
       at System.IO.__Error.WinIOError()
       at System.IO.File.Move(String sourceFileName, String destFileName)
       at Portal_2_Level_Installer.Form1.WorkMagic(String FileLocation) in C:\Users\Yoshie\Local Settings\Documents\Visual Studio 2010\Projects\Portal 2 Level Installer\Portal 2 Level Installer\Form1.cs:line 265
  InnerException: 

Мой код:

File.Move(FileLocation, destinationPath);

И содержимое переменных:

destinationPath="c:/program files (x86)/steam\\steamapps\\common\\portal 2\\Test\\Test.docx"
FileLocation="C:\\Users\\Yoshie\\Local Settings\\Documents\\Test.docx"

Спасибо! РЕДАКТИРОВАТЬ: я действительно чувствую себя идиотом сейчас. Я не понимал, что папка назначения должна существовать! Я тупо предполагал, что папка назначения будет создана автоматически, если ее еще не было. Извините за потраченное время, но все равно спасибо за ответы! (Теперь я знаю, что могу использовать @, чтобы перестать убегать, так что это полезно знать) В любом случае, спасибо, и еще раз, извините!

Ответы [ 4 ]

3 голосов
/ 12 августа 2011

Пожалуйста, используйте \ а не / а также используйте @ like @ "path".

2 голосов
/ 12 августа 2011

Имеет ли это какое-то значение?

destinationPath=@"c:\program files (x86)\steam\steamapps\common\portal 2\Test\Test.docx";
FileLocation=@"C:\Users\Yoshie\Local Settings\Documents\Test.docx";
0 голосов
/ 29 февраля 2012

Я также был пойман этим TargetInvocationException при выполнении File.Delete и не заметил внутреннего сообщения о том, что каталог существует.

Это произошло из-за того, что я переключился с Release на Debug, и мне не удалось создать набор относительных подпапок, которые содержали бы файл, который нужно удалить.

0 голосов
/ 12 августа 2011

Ваш путь к файлу назначения должен быть таким

destinationPath="c:\\program files (x86)\\steam\\steamapps\\common\\portal 2\\Test\\Test.docx"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...