您好,我正在尝试将文件复制到共享网络,但仍然收到错误文件名、目录名或卷标语法不正确
。有人可以发现我做错了什么吗?另外,我的应用程序正在使用 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/