![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Собственно я и сам не в первый раз вижу Delphi, но собственно уткнулся в проблему:
Есть определенный файл, к примеру file.csv(*.csv - обычный текстовый файл, можно из экселя сохранить). Лежит он у меня на сетевом диске, обозначенном буквой T.(не суть важно). Вот в чем проблема: В программке путь задается к каталогу(в нем не только этот файл, а еще много с таким же расширением). В настройках программки, выбираю каталог, в итоге путь к каталогу вида "Т:\". Программно формируется путь к файлу вида "Т:\file.csv". Далее, идут операции с файлом стандартные: Код:
procedure JJJJ() Var File:TextFile; FileName:TFileName; begin ... FileName:=PathToFile+'file.csv'; AssignFile(File,Filename); reset(File) end; end; На reset вываливается ошибка "specifed file not found". Но файл есть! Если получить имя файла через диалог (TOpenDialog) все работает, файл читаю, делаю операции и т.д. Но мне нужно программно формировать путь к файлу. В итоге получается: 1. Если файл находится на сетевом диске, то программно сформированный путь к файлу не работает, через диалог работает (файл находится). 2. Если файл находится на локальном диске, то оба варианта работаю(что естественно). Куда капнуть, кто знает? Помогите, уже 3 день бьюсь. Отладчик ничем не помог. Если файл разместить на локальном диске D (например). То путь, полученный от диалога "D:\file.csv" = программно сформированному "D:\File.csv". а с сетевым диском уже нет. Где логика? не знаю среда: Delphi 2010 |
#2
|
||||
|
||||
![]() Видимо во второй
![]() ![]() |
#3
|
|||
|
|||
![]() Такой сетевой диск есть.
Если получить путь к файлу через OpenDialog.FileName - все работает прекрасно. Если преобразовать к UNC, то OpenDialog.FileName тоже работает прекрасно, а вот програмно сформированое имя не работает, хотя преобразовывается к UNC виду. И че делать не знаю.... ![]() |
#4
|
||||
|
||||
![]() В том то и дело, что ты пытаешься указать на сетевой диск, а дельфи понимает как локальный диск, посмотри куда ссылается диск T.
Если ты в "Мой компьютер" видишь диск Т, это не значит что он твой, это ссылка на другую машину, а путь к ней скрывает ярлык. Это понятно? Посмотри куда ссылается Диск Т и пропиши его |
#5
|
|||
|
|||
![]() Ну я ж пишу, что UNC путь тоже не отрабатывает, если его програмно сформировать, есть такая функция ExpandUNCFileName которая преобразует к сетевому пути, тоже не работает. выдет путь вида \\server\temp\file.csv для T:\file.csv
Если через диалог открытия файла, все работает - вот в чем вся беда, но мне не нужен диалог открытия файла, программа должна обрабатывать сотни файлов, файлы приходят по интернету и падают в сетевой диск. |
#6
|
|||
|
|||
![]() а если программно присвоить OpenDialog'у твой путь, а в assingfile брать из него?
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |