我有一个奇怪的问题,我有一个应用程序,扫描目录并获取文件列表 . 它通过阅读和执行某些操作来处理每个文件 . 它在开发计算机中工作正常但是当我将它部署到客户端时,它给了我错误 . 这是代码
public void ProcessIMFiles()
{
DirectoryInfo di = new DirectoryInfo(Globals.ITMDIR);
FileInfo[] Files = di.GetFiles("*.txt");
foreach(FileInfo file in Files)
{
try
{
processThisIMFile(file.FullName);
movefile(file.FullName);
}
catch (Exception ex)
{
MessageBox.Show("error : " + ex.Message);
}
}
}
在调用processThisIMFile(file.FullName)时发生错误,见下文 . Globals.ITMDIR是一个有效的路径 .
private void processThisIMFile(string FileName)
{
string[] Fields = null;
setconnection();
DataTable dt = null;
try
{
string[] Lines = System.IO.File.ReadAllLines(FileName);
foreach (string line in Lines)
{
Fields = line.Split(Globals.delimiter);
if (Fields.Length == 7)
{
//stuff happens here
}
}//Try
catch (Exception e)
{
if (Interactive)
{
MessageBox.Show("Error in the Path: ->" + FileName);
writeToLog(true, "error opening file " + FileName);
}
}
}//end of processThisItemFile
错误发生在“string [] Lines = System.IO.File.ReadAllLines(FileName)”行中 . FileName来自di.GetFiles(“* .txt”);当我展示实际路径时,它看起来对我来说没问题 . 我已尝试使用UNC路径和驱动器号路径,如C:\ tmp \ filename.txt或\ server \ tmp \ filename.txt在deplopyment机器中都失败了“不支持给定路径”但它工作正常在开发机器中 .
到底是怎么回事?
1 回答
我想知道这是否与file.fullname有关,以某种方式改变文件路径字符串并给出不可接受的结果 . 您可以使用
processThisIMFile(Path.GetFullPath(file))
进行故障排除吗?此外,在processthisim文件之前使用messagebox.show(file.FullName)
来确认结果是否符合预期 .