Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
2 / 2 / 1
Регистрация: 22.09.2012
Сообщений: 189
1

Как узнать перечень коротких имен системных папок

31.10.2012, 16:05. Показов 3117. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
все перегуглил не нашел коротких имен системных папок
ну вот типа "%Docume~1%\..." вот те самые которые пишут в % где можно увидеть полный перечень?

Добавлено через 10 минут
кое что по папкам все таки нарыл сам, еще вопрос касательно команды DeleteFile
вот к примеру:

DeleteFile("%USERPROFILE%Рабочий стол\Новая папка\*.*");

выдает кучу ошибок, что не так?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2012, 16:05
Ответы с готовыми решениями:

Перемещение системных папок пользователя - как ?
Подскажите как переназначить расположение папок пользователя: Мои документы Рабочий стол Cookies...

Как отключить защиту системных папок в WinXP?
Мне нужно изменить драйвер в папке windows\system32\drivers Но когда я это делаю, виндовс...

Как узнать перечень всех подключенных БД?
Добрый день! Есть необходимость получить список всех подключенных в текущий момент баз данных....

Перечень имен файлов в combobox
Собственно есть данный фрагмент, извлекает имена файлов. ComboBox2.Perform(CB_DIR, DDL_READWRITE,...

10
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32836 / 21173 / 8148
Регистрация: 22.10.2011
Сообщений: 36,432
Записей в блоге: 8
31.10.2012, 16:28 2
Илья Панов, есть API-шная функция ExpandEnvironmentStrings, которая заменяет %переменные% на их значения.
0
2 / 2 / 1
Регистрация: 22.09.2012
Сообщений: 189
31.10.2012, 19:40  [ТС] 3
Цитата Сообщение от UI Посмотреть сообщение
Илья Панов, есть API-шная функция ExpandEnvironmentStrings, которая заменяет %переменные% на их значения.
а причем тут C++? не дружу с API пока

Добавлено через 2 часа 11 минут
вот нагуглил получилось что то типа
ShellExecute(0,'open','cmd', '/c del *.*','%Docume~1%%USERNAME%\Рабочий стол\Новая папка\',0);
только пишет this form of method call only allowed for class methods

Добавлено через 38 минут
точнее ShellExecute(0,'open','cmd', '/c del *.*','%SYSTEMDRIVE%:\Docume~1\%USERNAME%\Рабочий стол\Новая папка\',0);
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
31.10.2012, 20:18 4
С++ тут вообще не причем. Вот тебе код на Дельфи. В нем все есть.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,    Dialogs,
  StdCtrls;
type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var osvi: TOSVersionInfo;  si: TSystemInfo;
s:string;
dwResult, nsize: Cardinal;
ch : array[0..1000] of Char;
begin
GetComputerName(ch, nsize);
Label1.Caption:='Компьютер: '+ch;
GetUserName(ch, nsize);
Label2.Caption:='Пользователь: '+ch;
nSize := GetSystemDirectory(ch, MAX_PATH);
Label3.Caption:='System directory: '+ch;
nSize := GetWindowsDirectory(ch, MAX_PATH);
Label4.Caption:='Windows directory: '+ch;
Label5.Caption:='Переменные окружения :';
dwResult:= ExpandEnvironmentStrings('OS=%OS% ', ch, 500);
Label6.Caption:=ch;
dwResult:= ExpandEnvironmentStrings('INCLUDE=%INCLUDE%',ch,500);
Label7.Caption:=ch;
dwResult:= ExpandEnvironmentStrings('CLASSPATH=%CLASSPATH%',ch,500);
Label8.Caption:=ch;
dwResult := ExpandEnvironmentStrings('ComSpec=%ComSpec%',ch,500);
Label9.Caption:=ch;
osvi.dwOSVersionInfoSize := sizeof (OSVERSIONINFO);
GetVersionEx (osvi);
if (osvi.dwPlatformId = VER_PLATFORM_WIN32s) then
s:= 'Microsoft Win32s '+IntToStr(osvi.dwMajorVersion)+'.'+
IntToStr(osvi.dwMinorVersion) +' Build '+
IntToStr(osvi.dwBuildNumber);
if (osvi.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS)
then
s:= 'Microsoft Windows 95 '+IntToStr(osvi.dwMajorVersion)+'.'+
 IntToStr(osvi.dwMinorVersion) +' Build '+
IntToStr(osvi.dwBuildNumber);
if (osvi.dwPlatformId = VER_PLATFORM_WIN32_NT)
then
s:= 'Microsoft Windows NT '+IntToStr(osvi.dwMajorVersion)+'.'+
IntToStr(osvi.dwMinorVersion) +' Build '+
IntToStr(osvi.dwBuildNumber);
Label10.Caption:=' Операционная система: '+s;
end;
end.
0
2 / 2 / 1
Регистрация: 22.09.2012
Сообщений: 189
01.11.2012, 07:03  [ТС] 5
Цитата Сообщение от gorfil Посмотреть сообщение
С++ тут вообще не причем. Вот тебе код на Дельфи. В нем все есть.
разбираться в ЭТОМ даже смысла не вижу, я точно знаю (теперь) что это можно как то просто закрыть через shellexecute просто еще не догнал как... но все закрытие получиться в 1 строчку а не хз сколько...

Добавлено через 27 минут
а вообще разобрался что за ошибка была, но даже при нормальной компиляции ничего не удаляется
п.с. админы тут вообще есть??? UI 1 раз ответил и все весь вечер пропали все
0
9 / 9 / 1
Регистрация: 12.10.2011
Сообщений: 148
01.11.2012, 07:03 6
Тебе что надо каталоги удалить или просто закрыть?
0
2 / 2 / 1
Регистрация: 22.09.2012
Сообщений: 189
01.11.2012, 07:11  [ТС] 7
Цитата Сообщение от Mirhat89 Посмотреть сообщение
Тебе что надо каталоги удалить или просто закрыть?
удалить все файлы в каталоге (или возможно еще по маске...)
0
9 / 9 / 1
Регистрация: 12.10.2011
Сообщений: 148
01.11.2012, 08:30 8
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function DeleteFiles(const FileMask : String) : Boolean;
var
SRec : TSearchRec;
Path : String;
begin
Result := FindFirst(FileMask, faAnyFile, SRec) = 0;
if not Result then
exit;
try
Path := ExtractFilePath(FileMask);
Repeat
if (SRec.Name <> '') and (SRec.Name  <> '.') and (SRec.Name <> '..') and
(SRec.Attr and (faVolumeID + faDirectory) = 0) then
 begin
 Result := DeleteFile(Path + SRec.Name);
 if not Result then
 break;
end;
 Until FindNext(SRec) <> 0;
 finally
FindClose(SRec);
end;
end;
 
procedure TForm1.btn1Click(Sender: TObject);
begin
DeleteFiles('C:\zzzzz\*.doc');
end;
 
end.
так не канает?)
0
2 / 2 / 1
Регистрация: 22.09.2012
Сообщений: 189
01.11.2012, 13:36  [ТС] 9
Цитата Сообщение от Mirhat89 Посмотреть сообщение
так не канает?)
нет
DeleteFiles('%SYSTEMDRIVE%:\Docume~1\%USERNAME%\Рабочий стол\Новая папка\*.*'); //новая папка это так для примера...
смысл в том чтобы удалять именно по пути вот в таком или по типу виде, т.е. пишу программку не только же для своего компа... просто скажите как мне правильно указывать подобного рода пути (с использованием системных папок)
0
2 / 2 / 1
Регистрация: 22.09.2012
Сообщений: 189
03.11.2012, 08:55  [ТС] 10
HELP !!!
0
249 / 154 / 31
Регистрация: 07.10.2012
Сообщений: 401
03.11.2012, 12:43 11
Цитата Сообщение от Илья Панов Посмотреть сообщение
HELP !!!



Собрал из постов в этой теме:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function DeleteFiles(const FileMask : String) : Boolean;
var
  SRec : TSearchRec;
  Path : String;
begin
  Result := FindFirst(FileMask, faAnyFile, SRec) = 0;
  if not Result then
  exit;
try
  Path := ExtractFilePath(FileMask);
  Repeat
    if (SRec.Name <> '') and (SRec.Name  <> '.') and (SRec.Name <> '..') and
       (SRec.Attr and (faVolumeID + faDirectory) = 0) then
      begin
        Result := DeleteFile(Path + SRec.Name);
        if not Result then
          break;
      end;
  Until FindNext(SRec) <> 0;
finally
  FindClose(SRec);
end;
end;
 
procedure TForm1.btn1Click(Sender: TObject);
var
  Mask: string;
  ch : array[0..1000] of Char;
begin
  Mask := '%SYSTEMDRIVE%\Docume~1\%USERNAME%\Рабочий стол\Новая папка\*.*';
  ExpandEnvironmentStrings(PChar(Mask), ch, 500);
  DeleteFiles(ch);
end;
0
03.11.2012, 12:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2012, 12:43
Помогаю со студенческими работами здесь

Добавить в архив перечень папок
Имеется список директорий для архивирования C:\Users\Denis\YandexDisk\Книги...

Вывести перечень имен простых переменных
Как вывести перечень имен простых переменных в левой части оператора присваивания? Как я понимаю...

Как узнать имена системных окон MsgBox
Помогите решить задачку. В программе есть процедура, которая при нажатии на Escape закрывает одно...

Преобразование коротких имён файла в длинные и наоборот
здрасти! народ подскажите как пользоваться функциями GetFullPathName и GetShortPathName ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru