using System;
using System.IO;
namespace GetFilesFromDirectory
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Write your Name of Disc");
string myDisc = Console.ReadLine();
string myDisc1 = "@\"";
Console.WriteLine("Write your Directory");
string myDir1 = Console.ReadLine();
string myDir = ":\\";
string myDir2 = "\\\"";
string myPath = myDisc1 + myDisc + myDir + myDir1 + myDir2;
Console.WriteLine(myPath);
string[] filePaths = Directory.GetFiles(myPath);
foreach (var files in filePaths)
{
Console.WriteLine(files);
}
Console.ReadLine();
}
}
}
ответ
Из того, что я могу сказать, ваш myPath
будет выглядеть @"discName:\dirName\"
, вам не нужно приобщить @"
или "
.
Эти символы используются, когда вы создаете новую строковую переменную, чтобы отметить, что это String literal, но вы включаете эти символы в фактическую строку, которую вы генерируете.
Другими словами, удалить myDisc1
и myDir2
лучше, чем, как отметил DrKoch
string myPath = Path.Combine(myDisc + @":\", myDir1);
На самом деле вам нужно добавить «: \\» после myDisc –
Косая черта не будет добавлена, если путь является ссылкой на привод http://stackoverflow.com/questions/19909008/path-combine-does-not-add- directory-separator-after-drive-letter –
@alessiobortolato - Извинения, спасибо – Sayse
Попробуйте
static void Main(string[] args)
{
Console.WriteLine("Write your Name of Disc");
//You need to add :\ to make it a fullPath
string myDisc = Console.ReadLine()+":\\";
Console.WriteLine("Write your Directory");
string myDir1 = Console.ReadLine();
string myPath = Path.Combine(myDisc , myDir1);
Console.WriteLine(myPath);
string[] filePaths = Directory.GetFiles(myPath);
foreach (var files in filePaths)
{
Console.WriteLine(files);
}
Console.ReadLine();
}
Что вы делаете, создает строковый Wich это буквальный отступ строки, которую вы хотите, но вам не нужно это делать.
Например, если вы пишете это:
string [email protected]"c:\dir\subdir";
его реальная стоимость будет c:\dir\subdir
вместо этого "@\"c:\\dir\\subdir\""
; будет @"c:\dir\subdir"
Прочитайте эти статьи, чтобы лучше понять строковые литералы и дословные строки https://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx
https://msdn.microsoft.com/en-us/library/362314fe.aspx
https://msdn.microsoft.com/en-us/library/h21280bw.aspx
- 1. getchar() не принимает ввод
- 2. Почему этот массив не принимает ввод пользователя?
- 3. jQuery.tubular не принимает ввод
- 4. os.path.exists не принимает переменный ввод
- 5. EditText TYPE_CLASS_NUMBER не принимает ввод
- 6. Phonegap, textarea не принимает ввод
- 7. Java-сканер не принимает ввод
- 8. Почему приложение .net не принимает SQL-запрос через пользовательский ввод?
- 9. Почему сканирование не принимает пользовательский ввод для структуры?
- 10. Почему R Shiny не принимает ввод текста, заданный jQuery?
- 11. Почему этот сканер не принимает ввод на println?
- 12. Почему мой контроль не принимает ввод с клавиатуры?
- 13. Почему мой лексер/парсер JavaCC не принимает этот ввод?
- 14. Виджет ввода Python Tkinter не принимает ввод
- 15. Цикл Do-While не принимает значение переменной
- 16. MIPS принимает пустой ввод
- 17. Getline() всегда принимает ввод
- 18. Cin принимает недопустимый ввод
- 19. Переключатель не принимает ввод до второй попытки
- 20. Почему c принимает строку в переменной int
- 21. Directory.GetFiles Не возвращает файл
- 22. Функция IsAlpha не принимает мой ввод
- 23. Ввод формы не принимает процентное заполнение
- 24. Почему ввод не принимается?
- 25. Json Serialization принимает числовой ввод для логической переменной
- 26. Quicker Directory.GetFiles()
- 27. python не принимает значение переменной
- 28. Python не принимает функцию переменной
- 29. c программа не принимает ввод до 100000
- 30. Jsch Shell не принимает ввод от терминала
Вы, вероятно, делаете неправильный путь, отлаживать и посмотреть, что у вас есть в myPath перед вызовом GetFiles. Это значение myPath должно открыть данную папку. – Adil
Что именно ваш вопрос? Вы получаете ошибки компилятора? Логические ошибки? Что вы ожидали, что случилось? – nvoigt
Показать хотя бы пример содержимого 'myPath' – DrKoch