首页 > 解决方案 > 尝试在服务器上创建文本文件会导致“找不到网络名称”错误

问题描述

我正在尝试将一个文本文件分成两半,分成两个新的文本文件。为此,我编写了一个 .NET 5 控制台应用程序,传递了我试图在命令行上拆分的文件的名称。我要拆分的文件位于我可以访问的网络共享上。当我运行我的应用程序时,它可以很好地找到并读取原始文本文件,但是当它尝试创建第一个新文本文件时出现错误:

找不到网络名称。: '\ourserver\ELRDataFilesELR-DailyExtract-STD(1)-Left.txt'

我已经用我的开发机器上的文件对此进行了测试,它工作正常。

我在 PowerShell 提示符下运行该应用程序。我尝试使用提升的权限运行 PowerShell 提示符,但没有成功。

我已经在网上寻找解决方案,但没有找到任何解决这个问题的方法。我知道我的代码读取了原始文本文件,我发现的大多数解决方案都涉及无法使用 StreamReader 或 File.ReadAllLines 看到该文件。

这是有问题的代码片段。尝试在文件名末尾使用“-Left”创建新文件时失败。注意:布尔变量 beVerbose 之前设置为true.

string[] lines;

try
{
    lines = File.ReadAllLines(elrFile);
}
catch (Exception ex)
{
    Console.WriteLine($"Encountered errors reading through {elrFile}:");
    DisplayAllErrors(ex);
    return;
}

//now capture the header row
headerRow = lines[0];

int totalRows = lines.Length;
int midPoint = totalRows / 2;

if (beVerbose)
{
    Console.WriteLine($"Total number of rows: {totalRows}");
    Console.WriteLine($"Mid-point: {midPoint}");
    Console.WriteLine("Begin construction of the left and right ELR text files");
}

string fileWritingTo = leftELRFileName;
try
{
    int i = 0;
    //write left file first
    using (var leftFile = new StreamWriter(fileWritingTo, false))
    {
        while (i < midPoint)
        {
            leftFile.WriteLine(lines[i]);
            i++;
        }
    }
    //now write the right file
    fileWritingTo = rightELRFileName;
    using (var rightFile = new StreamWriter(fileWritingTo, false))
    {
        //first, write the header row
        rightFile.WriteLine(headerRow);
        //now write the rest of the records
        while (i < totalRows)
        {
            rightFile.WriteLine(lines[i]);
            i++;
        }
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Error writing to file {fileWritingTo}:");
    DisplayAllErrors(ex);
    return;
}

标签: c#windowsconsole-application

解决方案


推荐阅读