我正在尝试获取文件.fdf
,使用外部命令将其转换为另一种格式.g
。从那里,我试图将源FDF移动到备份文件夹,将g文件移动到临时文件夹中。
要做到这一点,我正在使用这部分代码:
private void populateTable(string[] paths)
{
string fdf_g = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "Local\\FindReplace\\Bin\\fdf_g.exe";
string g_fdf = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "Local\\FindReplace\\Bin\\g_fdf.exe";
System.Collections.Generic.List < string > gFiles = new System.Collections.Generic.List<string>();
foreach (string file in paths)
{
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.FileName = fdf_g;
startInfo.Arguments = file;
System.Diagnostics.Process.Start(startInfo);
System.IO.File.Copy(file, System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "Local\\FindReplace\\BackupFDF\\" + System.IO.Path.GetFileName(file));
System.IO.File.Move("FOX_" + System.IO.Path.GetFileName(file).Replace(".fdf",".g"), System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "Local\\FindReplace\\Temp\\" + "FOX_" + System.IO.Path.GetFileName(file).Replace(".fdf", ".g"));
gFiles.Add(System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "Local\\FindReplace\\Temp\\" + "FOX_" + System.IO.Path.GetFileName(file).Replace(".fdf", ".g"));
}
foreach (string file in gFiles)
{
System.IO.StreamReader gFile = new System.IO.StreamReader(file);
string line = "";
while ((line = gFile.ReadLine()) != null)
{
foreach (string template in templates)
{
if (line.Contains(template) && !templatesInSelection.Contains(template))
{
templatesInSelection.Add(template);
}
}
}
}
findReplaceGrid.AutoGenerateColumns = false;
findReplaceGrid.DataSource = templatesInSelection;
}
我检查过abd转换工作正常。但是,该程序在读取行中引发了异常:
System.IO.File.Move("FOX_" + System.IO.Path.GetFileName(file).Replace(".fdf",".g"), System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "Local\\FindReplace\\Temp\\" + "FOX_" + System.IO.Path.GetFileName(file).Replace(".fdf", ".g"));
除了:
Additional information: Could not find file 'C:\Users\James.Hughes\Source\Repos\Find-and-Replace-Symbols\Find and Replace Symbols\bin\Debug\FOX_18_83_COD_002.g'.
转换实用程序使用此格式FOX_%origName%.g
重命名文件,因此对原始文件路径进行字符串操作以获取新名称。
我无法理解的是,当它应该在appdata中查找时,它试图访问C:\Users\James.Hughes\Source\Repos\Find-and-Replace-Symbols\Find and Replace Symbols\bin\Debug\FOX_18_83_COD_002.g'
。
我完全不知所措,所以任何帮助都会受到赞赏!
答案 0 :(得分:1)
System.IO.File.Move
有两个参数:sourceFileName
和destinationFileName
。您没有指定sourceFile
的路径,因此它在当前工作目录(bin / Debug)中查找它。尝试指定文件实际位置的路径。