HttpPostedFile和SaveAs不保存路径的一部分

时间:2018-11-29 16:21:40

标签: asp.net vb.net

我正在尝试保存使用HttpPostedFile控件上传的文件。

我遇到的主要问题是,它不会为该文件创建新文件夹。

在下面的代码中,“文件”是HttpPostedFile。

所以我有这样定义的基本路径:

    Dim basePath = "D:\\game\\world\\map\\MediaFiles\\"

然后我得到这样的文件名:

    Dim fileName = Path.GetFileName(file.FileName)

现在,我想使用gameId(guid)创建这样的新路径:

    Dim newFolderAndFile As String = gameId + fileName

然后将路径与基本路径合并并保存:

    Dim saveAsPath = Path.Combine(basePath, newFolderAndFile)

    file.SaveAs(saveAsPath)

但是当我尝试这样做时,我总是会收到这样的错误:

  

System.IO.DirectoryNotFoundException:无法找到   路径   'D:\ game \ world \ map \ MediaFiles \ 05a10e9c-e8a9-49ed-ad4f-34b6b4650ef3 \ 5.jpg'

因此,看来 saveAsPath 的构建正确,但是 SaveAs 未保存它。

如何获取SaveAs来创建路径和文件?

谢谢!

1 个答案:

答案 0 :(得分:1)

如the_lotus所述,您需要先创建目录,然后再保存文件

Dim basePath = "D:\game\world\map\MediaFiles\"
Dim fileName = Path.GetFileName(file.FileName)

' make new folder
system.io.direcotry.createdirectory(basepath & gameid)

Dim saveAsPath = (basePath & gameid & "\" & filename)
file.SaveAs(saveAsPath)

我不确定双斜杠,我认为这不是必需的...