使用System.IO.File.Move未指定目录路径的问题及文件去向
File.Move未指定完整路径?文件去向、数据状态全解析 文件去哪了?
你只传"Updated.txt"作为目标路径时,这是个相对路径,文件会被移动到程序的工作目录里:
- 在VS Code里运行C#程序,默认工作目录是你的项目根目录(就是存放
.csproj文件的文件夹),而非原文件所在的C:\Coding\Testing目录。 - 想快速定位的话,在代码里加一行
Console.WriteLine(Directory.GetCurrentDirectory());,运行后控制台会输出当前工作目录,直接去该目录就能找到Updated.txt。
数据还能找回来吗?
完全可以,数据根本没被销毁,只是换了存储位置。只要你没在工作目录里删除或覆盖这个文件,直接去取就行,不需要任何恢复工具。
错误代码-532462766是怎么回事?
这个错误码对应.NET运行时的未处理异常(HRESULT: 0xE0434352),大概率是你后续代码尝试读取原路径的文件(但文件已经移走),或是工作目录存在权限问题,但核心原因还是你对相对路径的指向逻辑不清晰。
以后怎么避免这类问题?
- 使用
File.Move时,尽量给目标参数指定绝对路径,避免路径歧义。 - 如果要在原目录下重命名文件,直接拼接原文件的目录路径即可,示例代码如下:
var fileToRename = "C:\\Coding\\Testing\\zesty.txt"; // 自动拼接原文件所在目录与新文件名 var targetPath = Path.Combine(Path.GetDirectoryName(fileToRename), "Updated.txt"); System.IO.File.Move(fileToRename, targetPath);
内容的提问来源于stack exchange,提问作者Fodder_H
相关产品推荐
相关产品推荐

