首页 文章

不支持给定路径C#

提问于
浏览
1

我有一个奇怪的问题,我有一个应用程序,扫描目录并获取文件列表 . 它通过阅读和执行某些操作来处理每个文件 . 它在开发计算机中工作正常但是当我将它部署到客户端时,它给了我错误 . 这是代码

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 回答

  • 0

    我想知道这是否与file.fullname有关,以某种方式改变文件路径字符串并给出不可接受的结果 . 您可以使用 processThisIMFile(Path.GetFullPath(file)) 进行故障排除吗?此外,在processthisim文件之前使用 messagebox.show(file.FullName) 来确认结果是否符合预期 .

相关问题