Папка с пробелом в конце

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
346
Благодарностей
209
Баллы
43
Здравствуйте. Так получилось, что иногда мне приходится работать с папками, у которых пробел в имени на конце. С такой папкой, как я ни извращался, не выходит сделать никаких действий. Ни удалить их, ни переименовать, ни файл из такой папки скачать... Подскажите любое решение данной проблемы.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113
Здравствуйте. Так получилось, что иногда мне приходится работать с папками, у которых пробел в имени на конце. С такой папкой, как я ни извращался, не выходит сделать никаких действий. Ни удалить их, ни переименовать, ни файл из такой папки скачать... Подскажите любое решение данной проблемы.
как не пытался сейчас - не смог создать папку с пробелом в конце (пробовал создавать вручную и через зенку), windows отсекает пробел..
 

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
346
Благодарностей
209
Баллы
43
Ну я же не буду врать) Так вот у меня получается по роду деятельности, что получаю такие папки... Нереально с ними вообще что-то сделать, даже удалить.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
как не пытался сейчас - не смог создать папку с пробелом в конце (пробовал создавать вручную и через зенку), windows отсекает пробел..
Например, Far может многие запрещенные символы и имена задавать.

Подскажите любое решение данной проблемы.
Код:
System.IO.Directory.Move(project.Variables["folder1"].Value, project.Variables["folder2"].Value);
Задать в переменной зп folder1 путь к папке с пробелом + обязательно \ в конце.
folder2 - новый путь.

зы: тоже думал, что не работает, пока не вспомнил про обязательное указание, что это папка) "\"
 

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
346
Благодарностей
209
Баллы
43
Например, Far может многие запрещенные символы и имена задавать.


Код:
System.IO.Directory.Move(project.Variables["folder1"].Value, project.Variables["folder2"].Value);
Задать в переменной зп folder1 путь к папке с пробелом + обязательно \ в конце.
folder2 - новый путь.

зы: тоже думал, что не работает, пока не вспомнил про обязательное указание, что это папка) "\"

Не выходит. Указал две переменные:
1 переменная {-Variable.papkaPath-} - её значение D:\My projects\!socsecret.ru\release\24-01-2018_11-27-Видео с места пожара на складе в Подмосковье \
2 переменная {-Variable.papkaPathNEW-} - её значение D:\My projects\!socsecret.ru\release\24-01-2018_11-27-Видео с места пожара на складе в Подмосковье

В коде C# следующий текст:
System.IO.Directory.Move(project.Variables["papkaPath"].Value, project.Variables["papkaPathNEW"].Value);

Код не выполнен...
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
а для чего такой замут с пробелом ? ну поставь нижнее подчёркивание
 

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
346
Благодарностей
209
Баллы
43
а для чего такой замут с пробелом ? ну поставь нижнее подчёркивание
Мне поступают в виде исходного материала такие вот папки, с исходным материалом я ничего поделать не могу. Мне надо получить файлы из таких вот папок, но т.к. на конце пробел, ваще ничего невозможно сделать - ни заменить на подчёркивание, ни файл получить из папки...
 

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
556
Баллы
93
Мне поступают в виде исходного материала такие вот папки, с исходным материалом я ничего поделать не могу. Мне надо получить файлы из таких вот папок, но т.к. на конце пробел, ваще ничего невозможно сделать - ни заменить на подчёркивание, ни файл получить из папки...
Очередной вирусописатель? или ?
Используй полный путь с UNC-префиксом “?” или “.”
\\?\C:\Dir \
Читаем тут ТЫЦ
 
Последнее редактирование:
  • Спасибо
Реакции: Yuriy Zymlex

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
Не выходит. Код не выполнен...
"Исходный и результирующий путь должны различаться." :bn:
К новому пути достаточно добавить: _


upd: Есть ещё рабочий вариант через WinAPI, но лучше юзать предложенный выше)
В общий:
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO;
using System.Text.RegularExpressions;
using ZennoLab.CommandCenter;
using ZennoLab.InterfacesLibrary;
using ZennoLab.InterfacesLibrary.ProjectModel;
using ZennoLab.InterfacesLibrary.ProjectModel.Collections;
using ZennoLab.InterfacesLibrary.ProjectModel.Enums;
using ZennoLab.Macros;
using Global.ZennoExtensions;
using ZennoLab.Emulation;
using System.Runtime.InteropServices;

namespace ZennoLab.OwnCode
{
    public class CommonCode
    {
        public static object SyncObject = new object();
    }

    public static class WinAPI
    {
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern bool MoveFile(string a, string b);
    }
}
В сниппет:
Код:
WinAPI.MoveFile(project.Variables["papkaPath"].Value, project.Variables["papkaPathNEW"].Value);
True - если удачно.
 
  • Спасибо
Реакции: socsecret.ru

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
346
Благодарностей
209
Баллы
43
"Исходный и результирующий путь должны различаться." :bn:
К новому пути достаточно добавить: _
[/SPOILER]
А у меня разве не различаются? Исходный с пробелом, конечный без пробела. Но в любом случае, я пробовал и другие пути задавать - тоже самое. Может для исполнения C# нужно что-то устанавливать или в настройках поставить?
 

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
346
Благодарностей
209
Баллы
43

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
А у меня разве не различаются? Исходный с пробелом, конечный без пробела.
Используй полный путь с UNC-префиксом “?” или “.”
\\?\C:\Dir \
Читаем тут ТЫЦ
Оказывается, это такая фича https://github.com/dotnet/corefx/issues/26618 (тикет не мой)https://github.com/dotnet/corefx/issues/26618
 
Последнее редактирование:

Solus

Client
Регистрация
14.04.2014
Сообщения
378
Благодарностей
120
Баллы
43
Хорошо, что всё решилось. Как по мне, я для начала выяснил бы, реально ли сделать так, чтоб на обработку приходили папки без пробелов.
 
  • Спасибо
Реакции: Sergodjan

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)