Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.12.2010, 09:45
icehammer icehammer вне форума
Прохожий
 
Регистрация: 16.12.2010
Сообщения: 9
Репутация: 10
По умолчанию Проблема с поиском файлов

Собственно я и сам не в первый раз вижу 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  
Старый 16.12.2010, 10:05
Аватар для Delphist
Delphist Delphist вне форума
Новичок
 
Регистрация: 10.12.2010
Адрес: Курган
Сообщения: 68
Репутация: 6002
По умолчанию

Видимо во второй , для обращения к Файлам лежащих на сетевых папках надо прописывать путь к этим файлам. Например \\DelphistPC\MyFile\file.csv, где DelphistPC - сетевое имя компа, MyFile - папка с нужными тебе провами, file.csv твой файл. Если ты указываешь на Т:\ то такого локального диска нет, отсюда и ошибка.
Ответить с цитированием
  #3  
Старый 16.12.2010, 10:16
icehammer icehammer вне форума
Прохожий
 
Регистрация: 16.12.2010
Сообщения: 9
Репутация: 10
По умолчанию

Такой сетевой диск есть.

Если получить путь к файлу через OpenDialog.FileName - все работает прекрасно. Если преобразовать к UNC, то OpenDialog.FileName тоже работает прекрасно, а вот програмно сформированое имя не работает, хотя преобразовывается к UNC виду.

И че делать не знаю....
Ответить с цитированием
  #4  
Старый 16.12.2010, 10:26
Аватар для Delphist
Delphist Delphist вне форума
Новичок
 
Регистрация: 10.12.2010
Адрес: Курган
Сообщения: 68
Репутация: 6002
По умолчанию

В том то и дело, что ты пытаешься указать на сетевой диск, а дельфи понимает как локальный диск, посмотри куда ссылается диск T.
Если ты в "Мой компьютер" видишь диск Т, это не значит что он твой, это ссылка на другую машину, а путь к ней скрывает ярлык. Это понятно? Посмотри куда ссылается Диск Т и пропиши его
Ответить с цитированием
  #5  
Старый 16.12.2010, 10:43
icehammer icehammer вне форума
Прохожий
 
Регистрация: 16.12.2010
Сообщения: 9
Репутация: 10
По умолчанию

Ну я ж пишу, что UNC путь тоже не отрабатывает, если его програмно сформировать, есть такая функция ExpandUNCFileName которая преобразует к сетевому пути, тоже не работает. выдет путь вида \\server\temp\file.csv для T:\file.csv

Если через диалог открытия файла, все работает - вот в чем вся беда, но мне не нужен диалог открытия файла, программа должна обрабатывать сотни файлов, файлы приходят по интернету и падают в сетевой диск.
Ответить с цитированием
  #6  
Старый 16.12.2010, 11:06
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

а если программно присвоить OpenDialog'у твой путь, а в assingfile брать из него?
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:40.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025