我在vb.net中有一个应用程序,用户可以在其中保存并查看附件。我将这些保存的附件保存在网络位置,当用户被要求查看其中一个时,我将其通过sql server通过存储过程复制到他的电脑中。我的代码是这样的:
> declare @Filename nvarchar(1000)
> declare @SourcePath nvarchar(1000)
> declare @UserPath nvarchar(1000)
>
>
> -- The file @Filename is input in stored procedure but for example lets say is a var
> set @Filename='something - PO number.htm'
>
>
> --Configure the SourcePath and UserPath
> --Source Path: The Path were there are all saved files
> --User Path: The path where i copy the file.
> set @SourcePath=@SourcePath + '\"' + @Filename + '"'
> set @UserPath=@UserPath + '\"' + @Filename + '"'
>
>
> -- Do the copy
> declare @CommandText nvarchar(1000)
>
> set @CommandText='copy ' + @SourcePath + ' ' + @UserPath
>
> exec master.dbo.xp_cmdshell @CommandText
问题是我有一个用户无法打开该文件。因为当文件被复制到他的文件夹中时,文件名会将名称更改为' something-S number.htm'。
实施例
所以,我复制了一些东西 - PO number.htm'在他的文件夹中,文件被复制为'东西 - S number.htm'
我的应用程序试图找到一个名为'某事物的附件 - PO number.htm'为了打开这个文件。并且看到此文件不存在,因为其名称已更改。
仅发生这种情况
有人知道为什么会这样吗?