Вверх ↑
Этот топик читают: Гость
Ответов: 9
Рейтинг: 0
#1: 2007-08-16 12:02:01 ЛС | профиль | цитата
Такая проблема. Копирует только файлы, а папки не хочет.
Пример: на диске С:/1 просмотр всей папки и потом с копировать в С:/1/temp или переместить

Make(delphi)
Add(MainForm,2806055,21,105)
{
Left=20
Top=105
Width=638
}
Add(FileSearch,7957369,266,189)
{
SubDir=1
FullName=1
Include=2
link(onSearch,12836302:doEvent1,[])
link(Dir,4744190:Data1,[])
}
Add(Edit,4111605,273,49)
{
Left=80
Top=25
Width=270
Text="C:/1"
}
Add(Label,13261640,112,7)
{
Left=80
Top=5
Width=177
Height=17
Caption="В какой дериктории делать поиск"
}
Add(DirTools,10954075,630,210)
{
Point(doRename)
link(Source,3794614:FString,[(636,198)(559,198)(559,268)(482,268)])
link(Dest,1449387:FString,[(643,172)(475,172)])
}
Add(GetData,4744190,273,112)
{
link(Data,4111605:Text,[])
}
Add(Label,4103685,70,7)
{
Left=80
Top=55
Width=174
Height=17
Caption="Куда перемещать файлы и папки"
}
Add(FormatStr,1449387,469,119)
{
Mask="%2/%1"
Point(FString)
link(onFString,4709131:doAdd,[])
link(Str1,11025099:Value,[(475,107)(447,107)(447,156)(412,156)])
link(Str2,5491385:Text,[])
}
Add(Edit,5491385,476,42)
{
Left=80
Top=75
Width=280
Text="C:/1/temp"
}
Add(ListBox,4709131,532,119)
{
Left=75
Top=105
Width=445
Height=100
Enabled=1
link(onChange,3536705:doCompare,[])
}
Add(Button,134818,189,189)
{
Left=5
Top=20
Caption="Пуск"
link(onClick,7957369:doSearch,[])
}
Add(FormatStr,3794614,476,224)
{
Mask="%2/%1"
Point(FString)
link(onFString,1449387:doString,[(520,230)(520,162)(455,162)(455,125)])
link(Str2,4744190:Data2,[(489,182)(286,182)])
}
Add(Hub,12836302,329,189)
{
link(onEvent1,11025099:doValue,[(387,195)(387,118)])
link(onEvent2,3794614:doString,[(416,202)(416,230)])
}
Add(Memory,11025099,406,112)
{
}
Add(If_else,3536705,581,119)
{
Op2=String(temp)
link(onFalse,10954075:doCopy,[(618,132)(618,216)])
}
Еще вопрос: На диске С есть папка temp(C:/temp) программа пытается с копировать ее, хотя задано просмотр C:/1
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 899
Рейтинг: 43
#2: 2007-08-16 21:12:03 ЛС | профиль | цитата
А так получается?
code_1823.txt

[size=-2]------ Добавлено в 21:12
Valek писал(а):
пытается с копировать ее, хотя задано просмотр C:/1

а нужно слэш в другую сторону наклонить C:1
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
файлы: 1code_1823.txt [1.5KB] [274]
Ответов: 1305
Рейтинг: 29
#3: 2007-08-16 21:33:05 ЛС | профиль | цитата
unalex писал(а):
а нужно слэш в другую сторону наклонить C:1

Собственно, Винда одинаково понимает и левый и правый слэши, для нее разницы нет. И для компиллятора разницы между 1 и каким-то там служебным символом (каким именно - не помню, уж извините) тоже нету, поэтому нужно задавать вот так: c:\1. Тоже касается всех сочетаний +любая цифра, [b]
[/b], и, кажется, чего-то там еще. В этих случаях тоже нужно ставить двойной слеш \
карма: 0

0
Ответов: 9906
Рейтинг: 351
#4: 2007-08-16 21:35:32 ЛС | профиль | цитата
v258 писал(а):
Винда одинаково понимает и левый и правый слэши

Что-то в этом примере как-то и не похоже на это
карма: 9

0
Ответов: 899
Рейтинг: 43
#5: 2007-08-16 22:13:13 ЛС | профиль | цитата
v258 писал(а):
Собственно, Винда одинаково понимает и левый и правый слэши, для нее разницы нет.

Как насчет простого доказательства обратного
Add(MainForm,5709239,133,77)
{
Left=20
Top=105
Width=216
Height=126
}
Add(Button,16393203,126,140)
{
Left=70
Top=25
Width=90
Caption="C:\1"
link(onClick,2433761:doExecute,[])
}
Add(SDialog,2433761,182,140)
{
StartDir="C:\1"
}
Add(Button,10294344,126,182)
{
Left=70
Top=50
Width=90
Caption="C:/1"
link(onClick,8919051:doExecute,[])
}
Add(SDialog,8919051,182,182)
{
StartDir="C:/1"
}
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 9906
Рейтинг: 351
#6: 2007-08-16 22:25:47 ЛС | профиль | цитата
unalex, ну когда же мы наконец читать-то научимся

v258 писал(а):
поэтому нужно задавать вот так: c:\1. Тоже касается всех сочетаний +любая цифра,
, и, кажется, чего-то там еще. В этих случаях тоже нужно ставить двойной слеш \

карма: 9

0
Ответов: 899
Рейтинг: 43
#7: 2007-08-16 22:33:46 ЛС | профиль | цитата
Galkov, насчет \ я знаю, сталкивался уже

[size=-2]------ Добавлено в 22:33
А в проге эт я поторопился, исправил
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 9906
Рейтинг: 351
#8: 2007-08-16 22:52:27 ЛС | профиль | цитата
v258, вот пример
Add(Button,12415137,28,273)
{
Left=405
Top=25
Width=130
Caption="..."
link(onClick,9146249:doClear,[])
}
Add(Button,14478702,28,322)
{
Left=405
Top=75
Width=130
Caption="..."
link(onClick,2454661:doReplace,[])
}
Add(DirTools,8814357,217,266)
{
link(Source,10734897:Left,[(223,254)(188,254)(188,310)(153,310)])
}
Add(Memory,9146249,84,266)
{
Default=String(E:\TASM=E:\TEMP)
link(onData,2218992:doWork2,[])
}
Add(StrPart,10734897,147,266)
{
Char="="
Point(Left)
link(onSplit,8814357:doCopy,[])
}
Add(Replace,2454661,84,322)
{
SubStr=""
DestStr="/"
link(onReplace,2218992:doWork3,[(130,328)])
link(Str,9146249:Value,[])
}
Add(HubEx,2218992,126,259)
{
link(onEvent,10734897:doSplit,[])
}
Сравни 2 шота...
В более навороченных - и иконок нет.
Да и папка "не копируется" в стартовом примере именно поэтому, кажется.

Вот тебе и "одинаково"

карма: 9

0
файлы: 2Cap2v258_1.png [8.9KB] [284], Cap2v258_2.png [8.8KB] [391]
Администрация
Ответов: 15295
Рейтинг: 1519
#9: 2007-08-17 01:05:28 ЛС | профиль | цитата
API ф-ции Windows 2k понимают и те и другие слеши и кроме того в пути пропускаются подряд идущие палки(например c:windows\\\temp). В Windows 9x ни то, ни другое не прокатит.

Проблемы же со слешами вида / могут возникать на этапе работы с путями не через API(получение папки по имени, получение расширения файла и т.д.)
карма: 27
0
Ответов: 9906
Рейтинг: 351
#10: 2007-08-17 10:36:29 ЛС | профиль | цитата
Dilma, в данном конкретном примере я вижу проблему на SHFileOperation
И никто ничего не искал и не преобразовывал ДО ейного употребления. Настолько я разбираюсь в гинекологии....
Или это не winAPI

Непоказывание иконок и имен в диалогах (хотя работает правильно) - мелочь, но свидетельство некой баги, безусловно.

Конкретно, стартовый пример топика: замени там косые, и все станет работать правильно. Это свидетельство чего, интересно
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#11: 2007-08-17 12:04:05 ЛС | профиль | цитата
Galkov писал(а):
Это свидетельство чего, интересно

а вот это свидетельство чего?
Add(Edit,668006,203,91)
{
Left=20
Top=30
Width=210
}
Add(Button,6612485,105,140)
{
Left=105
Top=140
link(onClick,2831092:doEvent1,[])
}
Add(FileStream,6836657,203,140)
{
FileName="c://///test.txt"
Mode=1
link(FileName,668006:Text,[])
}
Add(Hub,2831092,154,140:P)
{
link(onEvent1,6836657:doOpen,[])
link(onEvent2,6836657:doClose,[])
}

SHFileOperation - это всетаки ф-ция шела.

Galkov, в аттаче небольшая програмка, демонстрирующая небольшошй баг API и FS - создает в текущей директории папку с именем, состоящим из одного пробела Что ж уж после этого коворить о слешах...
карма: 27
0
файлы: 1fs_bug.rar [12.9KB] [277]
Ответов: 9906
Рейтинг: 351
#12: 2007-08-17 12:25:33 ЛС | профиль | цитата
Ну я никогда не испытывал потребности эксперементировать с Биллом на "устойчивость"
Оно мне надо
Меня не сильно напрягает создавать папки и имена файлов без пробелов и русских букв и цифр

Он и в штатных ситуациях-то не всегда правильно работает - пусть научится сначала
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#13: 2007-08-17 12:52:46 ЛС | профиль | цитата
на системах типа FAT удавалось в свое время создавать файлы с одинаковыми именами. Или даже замыкать одну из вложенных папок на родительскую делая по сути бесконечное дерево каталогов Так что наследие богатое...
карма: 27
0
Ответов: 56
Рейтинг: 1
#14: 2007-08-17 14:20:52 ЛС | профиль | цитата
Dilma писал(а):
в аттаче небольшая програмка, демонстрирующая небольшошй баг API и FS - создает в текущей директории папку с именем, состоящим из одного пробела Что ж уж после этого коворить о слешах...

А как теперь её удалить?Или теперь невозможно?
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#15: 2007-08-17 17:46:39 ЛС | профиль | цитата
почему же - возможно. Программа из аттача удаляет баговую папку из текущей директории
карма: 27
0
файлы: 1fs_bug_fix.rar [12.9KB] [284]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)