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

socsecret.ru

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

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

зы: тоже думал, что не работает, пока не вспомнил про обязательное указание, что это папка) "\"
 
Например, 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);

Код не выполнен...
 
а для чего такой замут с пробелом ? ну поставь нижнее подчёркивание
 
а для чего такой замут с пробелом ? ну поставь нижнее подчёркивание
Мне поступают в виде исходного материала такие вот папки, с исходным материалом я ничего поделать не могу. Мне надо получить файлы из таких вот папок, но т.к. на конце пробел, ваще ничего невозможно сделать - ни заменить на подчёркивание, ни файл получить из папки...
 
Мне поступают в виде исходного материала такие вот папки, с исходным материалом я ничего поделать не могу. Мне надо получить файлы из таких вот папок, но т.к. на конце пробел, ваще ничего невозможно сделать - ни заменить на подчёркивание, ни файл получить из папки...
Очередной вирусописатель? или ?
Используй полный путь с UNC-префиксом “?” или “.”
\\?\C:\Dir \
Читаем тут ТЫЦ
 
Последнее редактирование:
  • Спасибо
Реакции: ZX
Не выходит. Код не выполнен...
"Исходный и результирующий путь должны различаться." :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
"Исходный и результирующий путь должны различаться." :bn:
К новому пути достаточно добавить: _
[/SPOILER]
А у меня разве не различаются? Исходный с пробелом, конечный без пробела. Но в любом случае, я пробовал и другие пути задавать - тоже самое. Может для исполнения C# нужно что-то устанавливать или в настройках поставить?
 
А у меня разве не различаются? Исходный с пробелом, конечный без пробела.
Используй полный путь с UNC-префиксом “?” или “.”
\\?\C:\Dir \
Читаем тут ТЫЦ
Оказывается, это такая фича https://github.com/dotnet/corefx/issues/26618 (тикет не мой)https://github.com/dotnet/corefx/issues/26618
 
Последнее редактирование:
Хорошо, что всё решилось. Как по мне, я для начала выяснил бы, реально ли сделать так, чтоб на обработку приходили папки без пробелов.
 
  • Спасибо
Реакции: Sergodjan

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