一个简单的问题(我希望): 当我使用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"
谢谢! 编辑:我现在真的觉得自己像个白痴。我没有意识到目标文件夹必须存在!我愚蠢地假设目标文件夹将自动创建,如果它尚不存在。很抱歉浪费你的时间,但谢谢你的答案! (我现在知道我可以使用@来停止转义,所以这很有用) 无论如何,再次感谢对不起!
答案 0 :(得分:3)
请使用\而不是/以及使用@ like @“path”。
答案 1 :(得分:2)
这会有什么不同吗?
destinationPath=@"c:\program files (x86)\steam\steamapps\common\portal 2\Test\Test.docx";
FileLocation=@"C:\Users\Yoshie\Local Settings\Documents\Test.docx";
答案 2 :(得分:0)
您的目标文件路径应该是这样的
destinationPath="c:\\program files (x86)\\steam\\steamapps\\common\\portal 2\\Test\\Test.docx"
答案 3 :(得分:0)
在执行File.Delete时,我也被此TargetInvocationException捕获,并且没有注意到确保目录存在的内部消息。
这是由于我从Release切换到Debug而我无法创建一组包含要删除的文件的相对子文件夹。