File.Move Error - System.IO.FileNotFoundException:找不到文件'c:\ windows \ system32 \ inetsrv

时间:2009-12-14 03:24:49

标签: c#

我不知道为什么我会在下面收到此错误。我调试时的filevPath是完全有效的(是的,图像肯定是物理上在正在传递的filePath变量中的硬盘驱动器上)路径,并且显然与错误报告的路径不同,看起来像某些一般错误:

System.IO.FileNotFoundException:找不到文件'c:\ windows \ system32 \ inetsrv \ someimage1.jpg'

private void RenameUploadedFile(string uploadedFileName)
{
    string filePath = Path.Combine(WebUtil.UploadPath, uploadedFileName);

    if (File.Exists(filePath))
    {
        try
        {
            string newfileName = uploadedFileName.Replace(uploadedFileName.Substring(0, uploadedFileName.IndexOf("-")), currenSessionID);
            File.Move(uploadedFileName, newfileName);
        }
        catch (Exception ex)
        {
            .ErrorLog("Image Copy Error: " + ex.ToString());
            throw new ApplicationException("There was an error during a rename(move) operation on the Saved Item upload file: " + filePath + " error: " + ex.ToString());
        }
    }
    else
    {
        .ErrorLog("File does not exist or path is invalid for at the following filepath: " + filePath);
    }
}

3 个答案:

答案 0 :(得分:1)

替换:

string newfileName = uploadedFileName.Replace(uploadedFileName.Substring(0, uploadedFileName.IndexOf("-")), currenSessionID);

使用:

string newfileName = filePath.Replace(filePath.Substring(0, filePath.IndexOf("-")), currenSessionID);

答案 1 :(得分:0)

检查该文件夹的用户权限。

答案 2 :(得分:0)

通过查看代码不确定您需要将其放在何处,但需要使用

Server.GetPath()

查找Web应用程序的当前目录。

'c:\ windows \ system32 \ inetsrv \'是在ASP.NET中运行时的默认“当前目录”

如果您在抛出异常时可以提供有关字符串当前所包含的每个文件位置的更多详细信息,我可以告诉您哪个需要调用Server.GetPath()。