c# - 文件名、目录名或卷标语法不正确 - 映射共享网络驱动器 (ASP.NET MVC3 C#)

标签 c# iis

您好,我正在尝试将文件复制到共享网络,但仍然收到错误文件名、目录名或卷标语法不正确。有人可以发现我做错了什么吗?另外,我的应用程序正在使用 ASP.NET MVC3 运行,谢谢!

复制代码

File.Copy(@path, @Properties.Settings.Default.SharedMappedOutput);

路径是一个参数: C:\log\12345.pdf
Properties.Settings.Default.SharedMappedOutput 路径: \\vfler_xx\evl_xx\VT\

我想要完成的任务:我想将文件从 Path (文件名)复制到 SharedMappedOutput (目录)


额外信息

  • Windows Server 2008 R2
  • IIS 7.5
  • ASP.NET MVC3 C#

编辑
我在@Steve的帮助下更改了我的代码,但现在它说我无权访问我未指定的路径。

String dest_path = Properties.Settings.Default.SharedMappedOutput;
File.Copy(@path, Path.Combine(dest_path, Path.GetFileName(path)));

错误
访问路径“c:\windows\system32\insetsrv\12345.pdf”被拒绝 我没有指定这个路径,我不确定它为什么试图访问这个路径。

链接到新问题 https://stackoverflow.com/questions/16179585/iis-acccess-to-the-path-c-windows-system32-inetsrv-12345-pdf-is-denied


谢谢。如果问题中有任何疑问或误解,请告诉我。再次提前致谢。

最佳答案

File.Copy 不会将一个目录复制到另一个目录,而只是复制一个文件名。

您的c:\log似乎只是一个目录的名称,如documentation at MSDN所述。这不起作用

要复制源路径中的所有文件,您可以这样写

string destPath = Properties.Settings.Default.SharedMappedOutput;
foreach (string aFile in Directory.GetFiles(path, "*.*"))
     File.Copy(aFile, Path.Combine(destPath, Path.GetFileName(aFile)));

编辑 看到有关真实源名称的评论,那么答案仍然部分有效,因为目标也应该是文件名而不是目录。所以答案就变成了

string sourceFile = @"C:\log\12345.pdf";
string destPath = Properties.Settings.Default.SharedMappedOutput;
File.Copy(sourceFile, Path.Combine(destPath, Path.GetFileName(sourceFile)));

关于c# - 文件名、目录名或卷标语法不正确 - 映射共享网络驱动器 (ASP.NET MVC3 C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16178913/

相关文章:

c# - 计算相对路径变化

c# - Xamarin Forms ListView 复选标记

c# - 提交后清除所有字段

c# - "The specified network password is not correct"在没有密码的证书上,仅在实时服务器上

asp.net - Web.Config 可能是 “unreadable”

sharepoint - 如何让 MD5/digest 身份验证适用于不同的域?

c# - 如何滚动到选择框中选定的项目

c# - 使用 DLL 基地址读取内存

IIS架构: What signals w3wp. exe启动?

asp.net - Windows 身份验证不适用于 IIS Express 10