powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как изменить свойство файла?
12 сообщений из 12, страница 1 из 1
Как изменить свойство файла?
    #39382586
hoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hoz
Гость
Нужно изменить свойство файла "Кем сохранён". Это вообще реально сделать? Не нашёл я даже класса, который позволяет это делать. Properties для этого подходит?
...
Рейтинг: 0 / 0
Как изменить свойство файла?
    #39382597
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hoz,

Вам же ещё в прошлой теме сказали что свойства файлов MS Office и свойства файлов файловой системы это не одно и то же.
Эти знания вымыло за несколько дней?

Properties это вообще не о том. Это утилита для работа с конфигами. Java аналог для ini файлов.
...
Рейтинг: 0 / 0
Как изменить свойство файла?
    #39382608
hoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hoz
Гость
Blazkowiczhoz,

Вам же ещё в прошлой теме сказали что свойства файлов MS Office и свойства файлов файловой системы это не одно и то же.
Эти знания вымыло за несколько дней?

Properties это вообще не о том. Это утилита для работа с конфигами. Java аналог для ini файлов.
Помню, но BasicFileAttributes не содержит такое свойство. И другие интерфейсы там такой возможности не предоставляют.
Как тогда быть?
...
Рейтинг: 0 / 0
Как изменить свойство файла?
    #39382614
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hozПомню, но BasicFileAttributes не содержит такое свойство. И другие интерфейсы там такой возможности не предоставляют.
Как тогда быть?
Вы это специально, да? BasicFileAttributes предназначен для работы с файловой системой. Они знать ничего не знает про MS Office. В JSE нет API для работы с MS Office. Java ничего не знает про Офис. А Windows - "знает". Поэтому вы в свойствах файла видите информацию о содержимом документов. Как вам ещё объяснить что свойства, которые вы ищете, находятся внутри файлов.

А аттрибуты файлов - это мета информация файловой системы. Она не относится к содержимому файлов.

Для вашей проблемы существует opensource проект Apache POI, который вы упорно продолжаете игнорировать.
...
Рейтинг: 0 / 0
Как изменить свойство файла?
    #39382648
hoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hoz
Гость
Суть в том, что я и POIXMLProperties лопатил. Здесь тоже нет такого атрибута.
...
Рейтинг: 0 / 0
Как изменить свойство файла?
    #39382657
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hozСуть в том, что я и POIXMLProperties лопатил. Здесь тоже нет такого атрибута.

Что вы не то вкладываете в глагол "лопатил":
https://poi.apache.org/apidocs/org/apache/poi/POIXMLProperties.CoreProperties.html#getLastModifiedByUser()

http://stackoverflow.com/questions/27225499/how-to-get-last-saved-by-office-file-attribute-in-java
...
Рейтинг: 0 / 0
Как изменить свойство файла?
    #39382673
hoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hoz
Гость
[quot Blazkowicz]hozЧто вы не то вкладываете в глагол "лопатил"
Это видимо перегруз. Я вчера долбался ночью. Написил класс, который получает и задаёт свойства. Так вот, 3 свойства я не смогу вызвать. Например,
Код: java
1.
2.
3.
4.
5.
6.
7.
    // Получение атрибута "Кем сохранён" из закладки "Подробно" xlsx-файла
    public static String getLastModifiedByUser(File file) throws IOException, OpenXML4JException, XmlException {
        OPCPackage pkg = OPCPackage.open(file);
        POIXMLProperties xmlProps = new POIXMLProperties(pkg);
        PackagePropertiesPart propertiesPart = xmlProps.getCoreProperties().getUnderlyingProperties();
        return propertiesPart.get;
    }


В последней строке интелленсенс идеи мне не подсказывает выбор метода getLastModifiedByUser. Даже если его туда вбить на сильно, всё-равно подсвечивает красным его и толку нет. Как тогда его вообще вызвать?
...
Рейтинг: 0 / 0
Как изменить свойство файла?
    #39382675
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hoz,

Вы по ссылке смотрели?
Since: POI 3.15 beta 3
У вас какая версия?
...
Рейтинг: 0 / 0
Как изменить свойство файла?
    #39382683
hoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hoz
Гость
Blazkowicz,
Смотрел. У меня последняя. Нужно было параметр входящий задать стрингом. Я не обратил внимания сразу. "Перегруз", как я выше и писал.
А как в вызывающем методе можно передать пользователя? И для чего он? Нам же нужно получить атрибут "Кем сохранён", а не задать..
...
Рейтинг: 0 / 0
Как изменить свойство файла?
    #39382688
hoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hoz
Гость
Получилось вот так:
Код: java
1.
2.
3.
4.
5.
6.
7.
    // Получение атрибута "Кем сохранён" из закладки "Подробно" xlsx-файла
    public static String getLastModifiedByUser(String user) throws IOException, OpenXML4JException, XmlException {
        OPCPackage pkg = OPCPackage.open(user);
        POIXMLProperties xmlProps = new POIXMLProperties(pkg);
        PackagePropertiesPart propertiesPart = xmlProps.getCoreProperties().getUnderlyingProperties();
        return propertiesPart.getLastModifiedByProperty().getValue();
    }


При вызове его и мэйна, в логе ловятся исключения:
Код: java
1.
2.
3.
4.
5.
6.
7.
java.lang.IllegalStateException: Zip File is closed
	at org.apache.poi.openxml4j.util.ZipFileZipEntrySource.getEntries(ZipFileZipEntrySource.java:45)
	at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:184)
	at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:684)
	at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:227)
	at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:187)
	at xcell.POIXMLProps.getLastModifiedByUser(POIXMLProps.java:183)


В чём дело?
...
Рейтинг: 0 / 0
Как изменить свойство файла?
    #39382703
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hoz,

Что у вас в переменной user? Почему переменная для имени файла называется user? Пробовали абсолютный путь передать?
Используйте лучше метод open(), с параметром типа File. Тогда сможете, например, проверить наличие файла.
...
Рейтинг: 0 / 0
Как изменить свойство файла?
    #39382706
hoz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hoz
Гость
Blazkowicz,
Да тут редактировать посты нет возможности. Вот и не успел попоравить.
В общем-то, так завелось...
Код: java
1.
2.
3.
4.
5.
6.
7.
    // Получение атрибута "Кем сохранён" из закладки "Подробно" xlsx-файла
    public static String getLastModifiedByUser(File file) throws IOException, OpenXML4JException, XmlException {
        OPCPackage pkg = OPCPackage.open(file);
        POIXMLProperties xmlProps = new POIXMLProperties(pkg);
        PackagePropertiesPart propertiesPart = xmlProps.getCoreProperties().getUnderlyingProperties();
        return propertiesPart.getLastModifiedByProperty().getValue();
    }


Только свойство это называется по левому getLastModifiedByProperty(), а не getLastModifiedByUser() как в документации.
Поэтому я и не находил его в списке доступных методов.
Теперь остался другой вопрос. Как задать это значение т.е. setLastModifiedByUser()
Вот мой метод:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    // Задание значения атрибуту "Кем сохранён" в закладке "Подробно" xlsx-файла
    public static void setLastModifiedByUser(File file, File newFile, String contentType, String user) throws IOException, InvalidFormatException {
        OPCPackage pkg = OPCPackage.open(file);
        XSSFWorkbook wb = new XSSFWorkbook(pkg);
        POIXMLProperties xmlProps = wb.getProperties();
        POIXMLProperties.CoreProperties coreProps = xmlProps.getCoreProperties();
        //coreProps.setLastModifiedByUser(contentType);
        coreProps.setL;
        FileOutputStream fos = new FileOutputStream(newFile);
        writeData(fos, wb, pkg);
    }


Ничего похожего на setLastModifiedByUser в списке доступных свойств нет.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как изменить свойство файла?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]