I am programming in c# and want to copy a folder with subfolders from a flash disk to startup.
Here is my code:
private void copyBat()
{
try
{
string source_dir = "E:\Debug\VipBat";
string destination_dir = "C:\Users\pc\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup";
if (!System.IO.Directory.Exists(destination_dir))
{
System.IO.Directory.CreateDirectory(destination_dir);
}
// Create subdirectory structure in destination
foreach (string dir in Directory.GetDirectories(source_dir, "*", System.IO.SearchOption.AllDirectories))
{
Directory.CreateDirectory(destination_dir + dir.Substring(source_dir.Length));
}
foreach (string file_name in Directory.GetFiles(source_dir, "*.*", System.IO.SearchOption.AllDirectories))
{
File.Copy(file_name, destination_dir + file_name.Substring(source_dir.Length), true);
}
}
catch (Exception e)
{
MessageBox.Show(e.Message, "HATA", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
I got an error:
Could not find a part of the path E:DebugVipBat
David Rogers
2,5514 gold badges39 silver badges82 bronze badges
asked Feb 15, 2014 at 11:10
6
The path you are trying to access is not present.
string source_dir = "E:\Debug\VipBat\{0}";
I’m sure that this is not the correct path. Debug
folder directly in E:
drive looks wrong to me. I guess there must be the project name folder directory present.
Second thing; what is {0}
in your string. I am sure that it is an argument placeholder because folder name cannot contains {0}
such name. So you need to use String.Format()
to replace the actual value.
string source_dir = String.Format("E:\Debug\VipBat\{0}",variableName);
But first check the path existence that you are trying to access.
answered Feb 15, 2014 at 11:14
SachinSachin
40.1k7 gold badges89 silver badges102 bronze badges
3
There’s something wrong. You have written:
string source_dir = @"E:\Debug\VipBat\{0}";
and the error was
Could not find a part of the path EDebugVCCSBat
This is not the same directory.
In your code there’s a problem, you have to use:
string source_dir = @"E:DebugVipBat"; // remove {0} and the \ if using @
or
string source_dir = "E:\Debug\VipBat"; // remove {0} and the @ if using \
Tom Bowen
8,1344 gold badges22 silver badges41 bronze badges
answered Feb 15, 2014 at 11:21
AkremAkrem
5,0238 gold badges36 silver badges64 bronze badges
0
Is the drive E a mapped drive? Then, it can be created by another account other than the user account. This may be the cause of the error.
Daniel B
8,7515 gold badges43 silver badges75 bronze badges
answered Sep 24, 2015 at 14:57
ThorstenCThorstenC
1,26411 silver badges26 bronze badges
2
I had the same error, although in my case the problem was with the formatting of the DESTINATION path. The comments above are correct with respect to debugging the path string formatting, but there seems to be a bug in the File.Copy exception reporting where it still throws back the SOURCE path instead of the DESTINATION path. So don’t forget to look here as well.
-TC
answered Dec 10, 2015 at 5:03
TJCTJC
911 silver badge4 bronze badges
We just had this error message occur because the full path was greater than 260 characters — the Windows limit for a path and file name. The error message is misleading in this case, but shortening the path solved it for us, if that’s an option.
answered Jun 15, 2022 at 18:02
RealHandyRealHandy
5243 gold badges7 silver badges27 bronze badges
Probably unrelated, but consider using Path.Combine
instead of destination_dir + dir.Substring(...)
. From the look of it, your .Substring() will leave a backlash at the beginning, but the helper classes like Path are there for a reason.
answered Nov 20, 2015 at 17:53
Drew DelanoDrew Delano
1,42116 silver badges21 bronze badges
There can be one of the two cause for this error:
- Path is not correct — but it is less likely as CreateDirectory should create any path unless path itself is not valid, read invalid characters
- Account through which your application is running don’t have rights to create directory at path location, like if you are trying to create directory on shared drive with not enough privileges etc
answered Feb 8, 2017 at 13:35
1
File.Copy(file_name, destination_dir + file_name.Substring(source_dir.Length), true);
This line has the error because what the code expected is the directory name + file name
, not the file name.
This is the correct one
File.Copy(source_dir + file_name, destination_dir + file_name.Substring(source_dir.Length), true);
ArunPratap
4,7487 gold badges24 silver badges43 bronze badges
answered Sep 14, 2015 at 0:29
Ryan ChongRyan Chong
1802 silver badges13 bronze badges
0
I resolved a similar issue by simply restarting Visual Studio with admin rights.
The problem was because it couldn’t open one project related to Sharepoint without elevated access.
answered Oct 3, 2016 at 7:03
0
This could also be the issue: Space in the folder name
Example:
Let this be your path:
string source_dir = @»E:DebugVipBat»;
If you try accessing this location without trying to check if directory exists, and just in case the directory had a space at the end, like :
«VipBat «, instead of just «VipBat» the space at the end will not be visible when you see in the file explorer.
So make sure you got the correct folder name and dont add spaces to folder names. And a best practice is to check if folder exists before you keep the file there.
answered Feb 11, 2022 at 4:49
Reejesh PKReejesh PK
6581 gold badge11 silver badges25 bronze badges
Есть форма, на ней treeview и textbox.
При нажатии на элемент в treeview, должен выводиться текст который берется из файла, а сам файл находится в папке(Gloss) с приложением.
Код
if (treeView1.SelectedNode.Index == 0)
{
materialMultiLineTextBox1.Text = Directory.GetCurrentDirectory() + File.ReadAllText(@"GlossB.txt");
}
Но выходит ошибка: «Не удалось найти часть пути «C:GlossB.txt».»
0 / 0 / 0 Регистрация: 19.02.2022 Сообщений: 28 |
|
1 |
|
28.07.2022, 13:42. Показов 1144. Ответов 14
Всем здравствуйте. Сделал простенькую программу , я новичок в c# . Смысл программы, в том что при запуске программы она копирует все куки файлы с компьютера и сохраняет в папку Dir2 . На моем пк все работает хорошо, однако на других пк выдается ошибка Необработанное исключение: System.IO.DirectoryNotFoundException: Не удалось найти часть пути «D:Dir2Affiliation Database». Миниатюры
0 |
1444 / 905 / 447 Регистрация: 06.02.2012 Сообщений: 2,780 |
|
28.07.2022, 13:48 |
2 |
На моем пк все работает хорошо, однако на других пк выдается ошибка Это тоже самое, что взять свои ключи и пытаться открыть чужую дверь. Как вы думаете в чем же может быть проблема?
Не удалось найти часть пути Нечего не смущает? На другом компе есть такой путь D:Dir2Affiliation Database?
0 |
0 / 0 / 0 Регистрация: 19.02.2022 Сообщений: 28 |
|
28.07.2022, 13:58 [ТС] |
3 |
Спасибо за ответ. Да я понимаю что ошибся, но не могли бы вы помочь разобраться в коде. Получается ошибка в названии пути? Я новичок ,сразу хочу попросить прощения за возможные не знания и ошибки, исправлюсь) Добавлено через 51 секунду
0 |
1772 / 1249 / 323 Регистрация: 26.06.2017 Сообщений: 3,422 |
|
28.07.2022, 14:03 |
4 |
Код в студию
0 |
0 / 0 / 0 Регистрация: 19.02.2022 Сообщений: 28 |
|
28.07.2022, 14:06 [ТС] |
5 |
Минутку открываю
0 |
1444 / 905 / 447 Регистрация: 06.02.2012 Сообщений: 2,780 |
|
28.07.2022, 14:11 |
6 |
разобраться в коде Где он?
0 |
DanBc 0 / 0 / 0 Регистрация: 19.02.2022 Сообщений: 28 |
||||
28.07.2022, 16:12 [ТС] |
7 |
|||
Добавлено через 16 минут Добавлено через 1 час 38 минут
0 |
Uswer 1772 / 1249 / 323 Регистрация: 26.06.2017 Сообщений: 3,422 |
||||
28.07.2022, 16:20 |
8 |
|||
Прежде чем приступать к копированию надо убедиться в доступности обоих путей (источника и назначения). И если для несуществующего источника метод dirInfo.GetFiles просто вернёт пустой массив, то место назначения надо проверить, например так:
Если путь назначения не существует, то надо запросить новый у пользователя или вывалить сообщение об ошибке.
0 |
DanBc 0 / 0 / 0 Регистрация: 19.02.2022 Сообщений: 28 |
||||
28.07.2022, 17:15 [ТС] |
9 |
|||
Uswer,
получилось так, пытался еще сделать чтение файла куки но не смог….Но ошибку это на других пк все равно не исправило Добавлено через 5 минут
0 |
0 / 0 / 0 Регистрация: 19.02.2022 Сообщений: 28 |
|
28.07.2022, 17:52 [ТС] |
10 |
вот исходники
0 |
Uswer 1772 / 1249 / 323 Регистрация: 26.06.2017 Сообщений: 3,422 |
||||
28.07.2022, 20:35 |
11 |
|||
Поправил как понял задачу Кликните здесь для просмотра всего текста
Вообще с этим можно справится и без кодинга, ознакомьтесь с командой Copy. Чтобы не писать каждый раз путь источника и назначения пишут bat- или cmd-файл.
1 |
9792 / 5961 / 1406 Регистрация: 25.05.2015 Сообщений: 18,154 Записей в блоге: 14 |
|
29.07.2022, 07:57 |
12 |
Dir2 передается на флешке вместе с программой. Поэтому я так сделал Это должно звучать так :
1 |
Uswer 1772 / 1249 / 323 Регистрация: 26.06.2017 Сообщений: 3,422 |
||||
29.07.2022, 08:48 |
13 |
|||
Аааа, понял (спасибо Rius) «D:Dir2» это каталог, из которого стартует программа! Тогда так:
0 |
0 / 0 / 0 Регистрация: 19.02.2022 Сообщений: 28 |
|
29.07.2022, 21:13 [ТС] |
15 |
Спасибо всем большое. Буду продолжать делать, если возникнут трудности напишу, спасибо большое)
0 |
Ошибка сама по себе. Путь, к которому вы пытаетесь получить доступ, отсутствует.
string source_dir = "E:\Debug\VipBat\{0}";
Я уверен, что это не правильный путь. Debug
папка непосредственно в драйвере E:
выглядит неправильно. Я предполагаю, что должен присутствовать каталог каталога имени проекта.
Второе; что есть {0}
в вашей строке. Я уверен, что это заполнитель аргументов, потому что имя папки не может содержать {0}
такое имя. Поэтому вам нужно использовать String.Format()
для замены фактического значения.
string source_dir = String.Format("E:\Debug\VipBat\{0}",variableName);
Но сначала проверьте существование пути, к которому вы пытаетесь получить доступ.
Sachin
15 фев. 2014, в 11:17
Поделиться
Там что-то не так. Вы написали:
string source_dir = @"E:\Debug\VipBat\{0}";
и ошибка была
Не удалось найти часть пути EDebugVCCSBat
Это не тот же каталог.
В вашем коде есть проблема, вы должны использовать:
string source_dir = @"E:DebugVipBat"; // remove {0} and the \ if using @
или
string source_dir = "E:\Debug\VipBat"; // remove {0} and the @ if using \
Akrem
15 фев. 2014, в 12:47
Поделиться
Является ли диск E сопоставленным диском? Затем он может быть создан другой учетной записью, отличной от учетной записи пользователя. Это может быть причиной ошибки.
ThorstenC
24 сен. 2015, в 15:22
Поделиться
Я разрешил подобную проблему, просто перезапустив Visual Studio с правами администратора.
Проблема заключалась в том, что он не смог открыть один проект, связанный с Sharepoint, без повышенного доступа.
K48
03 окт. 2016, в 08:37
Поделиться
У меня была такая же ошибка, хотя в моем случае проблема заключалась в форматировании пути DESTINATION. Вышеприведенные комментарии верны в отношении отладки форматирования строки пути, но, как представляется, ошибка в отчете об исключении File.Copy, где она по-прежнему возвращает путь SOURCE вместо пути DESTINATION. Поэтому не забудьте также посмотреть здесь.
-TC
user5662378
10 дек. 2015, в 06:21
Поделиться
Возможно, он не связан, но используйте Path.Combine
вместо destination_dir + dir.Substring(...)
. По внешнему виду ваш .Substring() оставит зазор в начале, но вспомогательные классы, такие как Path, существуют по какой-то причине.
Drew Delano
20 нояб. 2015, в 18:23
Поделиться
File.Copy(имя_файла, destination_dir + имя_файла .Substring(source_dir.Length), true);
В этой строке есть ошибка, потому что ожидаемый код — это имя каталога + имя файла, а не имя файла.
Это правильный вариант
File.Copy(source_dir + имя_файла, destination_dir + имя_файла .Substring(source_dir.Length), true);
Ryan Chong
14 сен. 2015, в 01:38
Поделиться
Для этой ошибки может быть одна из двух причин:
- Неправильный путь — но это менее вероятно, поскольку CreateDirectory должен создать любой путь, если только сам путь недействителен, читать недопустимые символы
- Учетная запись, на которой выполняется ваше приложение, не имеет прав на создание каталога в пути, например, если вы пытаетесь создать каталог на общем диске с недостаточными привилегиями и т.д.
techExplorer
08 фев. 2017, в 14:08
Поделиться
Ещё вопросы
- 0Увеличить межпроцессную строку без разделяемой памяти
- 1JAVA, какие элементы списка не находятся в другом списке
- 0какой тип содержимого установить, если содержимое страницы содержит смесь php, html, css и javascript / jquery… и расширение файла было php?
- 1Передача примитивного Типа в качестве параметра из XAML
- 0Выравнивание текста по вертикали внутри ссылки внутри <li>, который должен расширяться по горизонтали
- 0Каковы преимущества использования KnockoutJS по сравнению с AngularJS?
- 1Функция сна, не разрешающая обещание, переданное в нее
- 1Получить IP из AWS SDK descriptionAddresses
- 0Получение значений из ответа
- 1распространение синтаксиса с картой не работает
- 1Как я могу узнать, совершают ли пользователи повторные посещения?
- 0Утечка памяти при использовании Singleton для многопоточной среды
- 0Mysqli выбрать и считать
- 1Представление Flask создает DataFrame, но по-прежнему вызывает «UnboundLocalError: локальная переменная« df », на которую ссылаются до назначения»
- 0CSS3 переходы вместо jQuery
- 0Поиск данных в массиве, векторе, на карте и в списке
- 1Как дополнительно протестировать мою реализацию Gdx-pay?
- 0SQL несколько строк в одной строке
- 1Почему у меня есть 3 темы здесь?
- 0Как интегрировать Google Sparse Hash в C ++
- 0Неустранимая ошибка: вызов функции-члена getEmail () для необъекта в magento
- 0Как рассчитать размер оператора MySQL (не результаты запроса)
- 0Невозможно связаться с GraphicsMagik
- 0Показать результаты SQL-запроса на основе количества
- 1Как получить пересечение массивов во вложенном массиве
- 1удалить список элементов из ObservableCollection <List>, определенный DateTime
- 1Как использовать maven3 с java7 на OSX Mavericks?
- 0MySQL: группировка по нескольким столбцам, не дающая точных результатов
- 1XmlResolver не вызывается с помощью XslCompiledTransform
- 1API Route доступен с любым токеном JWT + PASSPORT
- 1Наследование Java — моделирование нескольких объектов
- 0Сценарий Yii не работает при проверке модуля
- 0Mysql запрос со свойствами родителей
- 1Хранение содержимого таблиц из одного класса в другой класс в Java
- 1Как получить один предмет в пиребазе?
- 0Сбой wglMakeCurrent на x64
- 0Подсчет записей за каждый месяц, в том числе с нулевым результатом
- 0Ошибка при выделении текста жирным и цветным шрифтом в JTextPane
- 0Отзывчивый дизайн сайта больше не отзывчивый
- 0МОЯ SMTP-почта продолжает поступать как нежелательная
- 1Не могу неявно преобразовать целое число типа в bool
- 0.addClass — Как вызвать CSS из связанных CSS?
- 1Задание пути к классу для JAR-файла Oracle JDBC в сентосах
- 0Доступ к wiringPi (GPIO) из Java через JNI
- 1d3.js: групповые аккорды на диаграмме одним цветом
- 0Скрипт для подсчета двух столбцов и результата эха
- 1как посчитать появление группового результата в Pandas
- 0Ошибка преобразования скобок из инфикса в постфикс
- 0Выбрать количество из нескольких таблиц
- 0Как проверить, что твит ретвитят?
-
На главную
-
How
- Сообщение об ошибке «Не удалось найти часть пути»
Сообщение об ошибке «Не удалось найти часть пути»
- 2023
Редактор:
Christopher Sullivan |
Написать мне
Я программирую на C # и хочу скопировать папку с подпапками с флеш-диска в автозагрузку.
Вот мой код:
У меня ошибка:
Не удалось найти часть пути E: Debug VipBat
- 2 Вы используете буквальные строковые литералы , и в этом случае вам не нужно экранировать « — просто используйте одну косую черту.
- @StuartLC прав. Если вы используете дословный строковый литерал, ваша строка будет в точности такой, как вы пишете. В этом случае это будет именно E: Debug VipBat , который не является допустимым путем.
- Разве вы не должны заполнить настоящее время в ? Еще одна вещь: вам не нужны две косые черты в пути, когда вы префикс строки .
- Добро пожаловать в Stack Overflow! Пожалуйста, не включайте информацию о языке, который используется в заголовке вопроса, если без него это не имеет смысла. Этой цели служат теги.
- Я не использовал @ и уверен, что путь правильный, но у меня та же ошибка. код обновлен …
Ошибка не требует пояснений. Путь, к которому вы пытаетесь получить доступ, отсутствует.
Я уверен, что это неверный путь. Папка прямо на диске мне кажется неправильной. Я предполагаю, что должна быть папка с именем проекта.
Во-вторых; что в вашей строке. Я уверен, что это заполнитель аргумента, потому что имя папки не может содержать такого имени. Поэтому вам нужно использовать для замены фактического значения.
Но сначала проверьте существование пути, к которому вы пытаетесь получить доступ.
- используйте Path.combine ()
- 13 Ошибка не требует пояснений. Несуществующий путь не является «частью пути»
- @ tno2007 Не смог найти несуществующую деталь!
Здесь что-то не так. Ты написал:
и ошибка была
Не удалось найти часть пути E Debug VCCSBat
Это не тот каталог.
В вашем коде есть проблема, вы должны использовать:
или
Диск E подключенный? Затем он может быть создан другой учетной записью, кроме учетной записи пользователя. Это может быть причиной ошибки.
- Связано ли это с привилегиями? Забавно, что я открыл визуальную студию как администратор, и код перестал работать с жалобой «Не удалось найти часть пути». В этом нет никакого смысла.
- Если пользователь, обращающийся к этому пути, является пользователем Active Directory, может возникнуть эта ошибка.
Вероятно, не связаны, но рассмотрите возможность использования вместо . Судя по всему, ваш .Substring () оставит обратную реакцию в начале, но вспомогательные классы, такие как Path, существуют не зря.
У меня была такая же ошибка, хотя в моем случае проблема была с форматированием пути DESTINATION. Приведенные выше комментарии верны в отношении отладки форматирования строки пути, но, похоже, есть ошибка в отчете об исключении File.Copy, где он по-прежнему возвращает путь SOURCE вместо пути DESTINATION. Так что не забудьте заглянуть и сюда.
-TC
У этой ошибки может быть одна из двух причин:
- Путь неверен, но это менее вероятно, поскольку CreateDirectory должен создать любой путь, если сам путь не является допустимым, считайте недопустимые символы
- Учетная запись, через которую работает ваше приложение, не имеет прав на создание каталога в указанном месте, например, если вы пытаетесь создать каталог на общем диске с недостаточными привилегиями и т. Д.
- В моем случае параметры безопасности в сетевой папке, которой я не владел, не давали достаточных разрешений пользователю службы, чтобы он мог получить доступ к файлу. Было бы здорово, если бы сообщение об ошибке включало Почему доступ не удался, вместо того, чтобы заставить нас предположить. Исключение даже не имеет внутреннего исключения для облегчения отладки.
Я решил аналогичную проблему, просто перезапустив Visual Studio с правами администратора.
Проблема заключалась в том, что он не мог открыть ни один проект, связанный с Sharepoint, без повышенных прав доступа.
Эта строка содержит ошибку, потому что ожидаемый код — это , а не имя файла.
Это правильный