Я написал программу, использующую IdHTTP и IdFTP, но у меня есть проблема. Я написал его на Windows XP 32 бит (используя Delphi XE4), и exe-файл (Project1.exe) отлично работает. Когда я пытаюсь открыть его на Windows 7 64 бит, компьютер дает мне ошибку.Не удается запустить win32 exe на windows 7
Изображение:
Это означает, что «Вы не можете Acces на пути или указанного файла Возможно, вы не имеете достаточных прав.». Я никогда не видел эту ошибку раньше. Здесь вы можете увидеть изображение папки с исходным кодом.
Как я могу решить свою проблему?
Вот код:
function downloadSrc(var aUrl:ansiString):ansiString;
begin
with tIdHttp.create(nil) do begin //Create Indy http object
request.userAgent:=INET_USERAGENT; //Custom user agent string
redirectMaximum:=INET_REDIRECT_MAX; //Maximum redirects
handleRedirects:=INET_REDIRECT_MAX<>0; //Handle redirects
readTimeOut:=INET_TIMEOUT_SECS*1000; //Read timeout msec
try //Catch errors
result:=get(aUrl); //Do the request
if url.port='80' then url.port:=''; //Remove port 80 from final URL
aUrl:=url.getFullURI //Return final URL
except result:='error' end; //Return an error message if failed
free //Free the http object
end
end;
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
if not(DirectoryExists('C:\mk7vrlist')) then
begin
CreateDir('C:\mk7vrlist');
end;
ComboBox1.Items.BeginUpdate;
for i := 0 to 59 do
begin
ComboBox1.AddItem(IntToStr(40000+i*1000), nil);
end;
ComboBox1.AddItem('99999', nil);
ComboBox1.Items.EndUpdate;
end;
procedure TForm1.Label5Click(Sender: TObject);
begin
ShellExecute(self.WindowHandle,'open',PChar('http://www.mk7vrlist.altervista.org'),nil,nil,SW_SHOWNORMAL);
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
var s:ansiString;
begin
IdFTP1.Host:= 'mk7vrlist.altervista.org';
IdFTP1.Username:='mk7vrlist';
IdFTP1.Password:=pass;
IdFTP1.Connect;
s:='http://www.mk7vrlist.altervista.org/databases/test.txt';
Memo1.Lines.Add(Edit1.Text+':'+ComboBox1.Text+':'+Edit2.Text);
Memo1.Lines.Add(downloadSrc(s));
Memo1.Lines.SaveToFile('C:\mk7vrlist\test.txt');
IdFTP1.ChangeDir('databases/');
IdFTP1.Put('C:\mk7vrlist\test.txt');
IdFTP1.Quit;
IdFTP1.Disconnect;
Label10.Visible:=True;
Beep;
end;
Это проблема разрешения NTFS File, МОС вероятно. Программа читает какой-то другой файл и дает вам эту ошибку? Или эта ошибка происходит ПОСЛЕ запуска вашей программы, и она пытается прочитать что-то еще на вашем компьютере? Вы ничего не сказали о том, что на локальном компьютере эта программа обращается. Кроме того, более удобно поместить текст чисто текстового сообщения прямо в ваш вопрос. Вы можете нажать Ctrl-C, а затем использовать google translate для получения английского текста. –
Вы пытаетесь писать на обычных C: \ или папках, таких как ProgramDir? – bummi
Программа загружает текстовый файл на моем сервере с помощью winlnet и сохраняет текст в c: \ folder1 \ folder2 \ textfile.txt –