C#从文本文件中读取路径说路径不存在[重复]

Posted

技术标签:

【中文标题】C#从文本文件中读取路径说路径不存在[重复]【英文标题】:C# Reading Paths From Text File Says Path Doesn't Exist [duplicate] 【发布时间】:2016-01-05 20:17:17 【问题描述】:

我正在开发一个小型命令行实用程序来从目录中删除文件。用户可以选择在命令行指定路径或从文本文件中读取路径。

这是一个示例文本输入:

C:\Users\MrRobot\Desktop\Delete
C:\Users\MrRobot\Desktop\Erase
C:\Users\MrRobot\Desktop\Test

我的代码:

class Program
    
        public static void Main(string[] args)
        

            Console.WriteLine("Number of command line parameters = 0", args.Length);

            if(args[0] == "-tpath:")

                    clearPath(args[1]);
            
            else
                if(args[0] == "-treadtxt:")

                    readFromText(args[1]);
                

        

        public static void clearPath(string path)
        
            if(Directory.Exists(path))

                int directoryCount = Directory.GetDirectories(path).Length;

                if(directoryCount > 0)

                    DirectoryInfo di = new DirectoryInfo(path);

                    foreach (DirectoryInfo dir in di.GetDirectories())
                    
                        dir.Delete(true); 
                    

                
                else

                    Console.WriteLine("No Subdirectories to Remove");
                

                int fileCount = Directory.GetFiles(path).Length;

                if(fileCount > 0)

                    System.IO.DirectoryInfo di = new DirectoryInfo(path);

                    foreach (FileInfo file in di.GetFiles())
                    
                            file.Delete(); 
                    


                
                else

                    Console.WriteLine("No Files to Remove");
                

                
            else

                Console.WriteLine("Path Doesn't Exist 0", path);
            
        

        public static void readFromText(string pathtotext)
        
                try
                   // Open the text file using a stream reader.
                    using (StreamReader sr = new StreamReader(pathtotext))
                    
                        // Read the stream to a string, and write the string to the console.
                        string line = sr.ReadToEnd();
                        clearPath(line);
                    
                
                catch (Exception e)
                
                    Console.WriteLine("The file could not be read:");
                    Console.WriteLine(e.Message);
                

        

    

我的问题:

从文本文件中读取时,它说第一个路径不存在,并打印提示的所有路径,尽管我没有Console.WriteLine()。但是,如果我插入这些相同的路径并调用 -tPath: 它将起作用。我的问题似乎在readFromText() 我似乎无法弄清楚。

【问题讨论】:

除此之外,我强烈建议您开始遵循 .NET 命名约定。 【参考方案1】:

这就是问题所在:

string line = sr.ReadToEnd();

这不是读取 数据 - 它是一次性读取整个文件。您的 clearPath 方法期望它的参数是单个路径,而不是一堆粘在一起的行。您看到所有路径的原因是 clearPath 正在被调用(所有内容都在一次调用中),没有找到“粘合在一起”的路径,它正在打印出 Console.WriteLine("Path Doesn't Exist 0", path); 中的输入。

我怀疑你应该使用类似的东西:

var lines = File.ReadAllLines(pathtotext);
foreach (var line in lines)

    clearPath(pathtotext);

【讨论】:

以上是关于C#从文本文件中读取路径说路径不存在[重复]的主要内容,如果未能解决你的问题,请参考以下文章

python 读取文本文档中的数据

C# 如何在文本文件中添加数据而不清除原来的内容?

在LINUX 下 使用PHP 修改文本文件

C# Winform如何打开指定的文件夹?

C# ,winform,如何清空或者删除一个文本文档(.txt 文件),路径已知

在c语言中怎样打开一个文本文档