1
FileInfo _fileinfo = new FileInfo(@"D:\Projects\LSImage\" + dt.Rows[0]["ApplicationImage"].ToString());         
File.Move(_fileinfo.FullName, _fileinfo.FullName.ToString().Replace(_fileinfo.FullName, dt.Rows[0]["ApplicationID"].ToString() + dt.Rows[0]["ApplicationImage"].ToString()));

它抛出一个错误

当该文件已存在时无法创建该文件。

我必须使用数据库中的 applicationId 重命名 LsImages 中的图像,因此我将其前缀为 application,然后是数据库中的 applicationimage 名称

4

5 回答 5

1

您正在替换完整的字符串:

File.Move(_fileinfo.FullName, _fileinfo.FullName .ToString().Replace( _fileinfo.FullName , dt.Rows[0]["ApplicationID"].ToString() + dt.Rows[0]["ApplicationImage"]。 ToString()));

你确定你不想要这个吗?:

File.Move(_fileinfo.FullName, _fileinfo.FullName.ToString().Replace(dt.Rows[0]["ApplicationImage"], dt.Rows[0]["ApplicationID"].ToString() + dt.Rows[0]["ApplicationImage"].ToString()));

或者:

File.Move(_fileinfo.FullName, _fileinfo.FullName.Replace(_fileinfo.Name, dt.Rows[0]["ApplicationID"].ToString() + dt.Rows[0]["ApplicationImage"].ToString()));
于 2013-07-09T05:39:56.413 回答
1
var defaultPath=@"D:\Projects\LSImage";
var appImage=dt.Rows[0]["ApplicationImage"].ToString();
var appId=dt.Rows[0]["ApplicationID"].ToString();
var srcFile=Path.Combine(defaultPath,appImage);
var dstFile=Path.Combine(defaultPath,appId + appImage);
FileInfo _fileinfo = new FileInfo(srcFile);  // This isn't needed to rename
File.Move(srcFile,dstFile);
于 2013-07-09T05:48:42.020 回答
0
FileInfo _fileinfo = new FileInfo(@"D:\Projects\LSImage\" + dt.Rows[0]["ApplicationImage"].ToString());
try
{
    File.Move(_fileinfo.FullName, _fileinfo.FullName.ToString().Replace(_fileinfo.FullName, dt.Rows[0]["ApplicationID"].ToString() + dt.Rows[0]["ApplicationImage"].ToString()));
}
catch(Exception ex)
{
    throw new Exception(String.Format("Trying to rename {0} to {1} failed!",_fileinfo.Fullname,dt.Rows[0]["ApplicationID"].ToString() + dt.Rows[0]["ApplicationImage"].ToString()));
}

然后告诉我们它报告了什么。

于 2013-07-09T05:37:23.073 回答
0

看起来您正在尝试将 ApplicationID 附加到文件的前面。如果是这样,试试这个:

FileInfo _fileinfo = new FileInfo(@"D:\Projects\LSImage\" + dt.Rows[0]["ApplicationImage"].ToString());         

string appID = dt.Rows[0]["ApplicationID"].ToString();
string appImage = dt.Rows[0]["ApplicationImage"].ToString();
string newFullPath = @"D:\Projects\LSImage\" + appImage + appID;

File.Move(_fileinfo.FullName, newFullPath); 
于 2013-07-09T05:44:22.690 回答
0
File.Move(_fileinfo.FullNmae,_fileinfo.FullName.Replace(_FileInfo.Name,dt.rows[0]["apid"].tostring() + dr.rows[0]["apname"].tosring()))
于 2013-07-09T05:50:05.183 回答