XOJO простая копия файла

Очень простая вещь, которую я пытаюсь выполнить.

У вас есть источник файла (изображение), хранящийся в виде строки (простой путь).

Я хочу скопировать этот файл в пользовательское место назначения. точнее к имени папки image, которая находится в корне приложения. Я проверил документацию, и все они относятся к классу FolderItem, который, к сожалению, я не могу понять.

Есть идеи?


person EnterpriseXL    schedule 13.07.2013    source источник


Ответы (4)


Класс FolderItem имеет встроенный метод FileCopy, и я бы порекомендовал изучить FolderItem, потому что он значительно упрощает работу с файлами в долгосрочной перспективе, потому что это действительно единственный способ сделать это в Xojo/Real Studio.

Обычно класс folderitem инициализируется с помощью метода GetFolderItem:

dim f as folderitem = GetFolderItem("somefile.pdf")

Эта базовая функция ищет файл PDF в том же каталоге, что и исполняемый файл. Если файл находится где-то еще, вы можете использовать абсолютный путь, например «C:/SomeFolder/somefile.pdf».

Есть несколько запрещенных местоположений, которые предназначены для частого доступа (данные приложения, настройки и т. д.), и самый простой способ добраться до них — использовать объект SpecialFolders. Если бы ваши файлы находились в папке Application Data, вы бы получили к ним доступ:

dim f as folderitem = SpecialFolder.ApplicationData.child("somefile.pdf")

SpecialFolder.ApplicationData возвращает элемент папки, и дочерний элемент ищет файл. Очень важно изучить дочерние и родительские методы Folderitem.

Существует множество примеров использования GetFolderItem по адресу https://docs.xojo.com/index.php/GetFolderItem

Объяснение SpecialFolder на https://docs.xojo.com/index.php/SpecialFolder

Если вам нужно видеообучение, подписчики могут получить более 40 часов обучения Real Studio и Xojo по адресу http://www.bkeeney.com/XojoTraining/xojotraining.cgi

person BKeeney Software    schedule 13.07.2013

Если вы не привыкли к объектно-ориентированному синтаксису, просто думайте о FolderItem как о том, где находится команда копирования. Итак, ниже мы создаем два объекта FolderItem: один для исходного файла и один для папки назначения. Как только это будет сделано, мы можем использовать метод CopyFileTo() объекта FolderItem для копирования файла:

dim s as String
dim source as FolderItem
dim dest as FolderItem

s="C:\test.jpg"
source=GetFolderItem(s)

dest=GetFolderItem("C:\image")

source.CopyFileTo(dest)
person Matt Trivisonno    schedule 13.07.2013

Класс FolderItem может представлять любой файл или папку на компьютере. Чтобы создать экземпляр FolderItem для определенного абсолютного пути, передайте путь методу GetFolderItem и сохранить результат:

Dim SourceFile As FolderItem
SourceFile = GetFolderItem("C:\ExampleFolder\ExampleFile.txt", PathTypeAbsolute)

После создания FolderItem вы можете изменить его свойства и вызвать его методы, чтобы повлиять на изменения в базовом файле или каталоге.

Чтобы скопировать или переместить файл в другой каталог, вам необходимо получить FolderItem, представляющий каталог назначения. В зависимости от места назначения вы можете использовать один из нескольких методов для получения целевого объекта FolderItem.

Например,

Dim destination As FolderItem
destination = GetFolderItem("C:\DestinationExample\", PathTypeAbsolute)

или с помощью модуля SpecialFolder:

destination = SpecialFolder.Desktop 'the user's desktop directory

или, используя родительскую папку свойство ExecutableFile ссылки Класс приложения:

destination = App.ExecutableFile.Parent 'your app's directory

Как только вы настроите исходный и конечный FolderItem, просто вызовите CopyFileTo или Методы MoveFileTo исходного элемента FolderItem:

Dim SourceFile As FolderItem
SourceFile = GetFolderItem("C:\ExampleFolder\ExampleFile.txt", PathTypeAbsolute)

Dim destination As FolderItem
destination = GetFolderItem("C:\DestinationExample\", PathTypeAbsolute)

SourceFile.MoveFileTo(destination)
' or
SourceFile.CopyFileTo(destination)

Обратите внимание, что методы CopyFileTo и MoveFileTo нельзя использовать для перемещения или копирования каталогов, только для файлов.

person Andrew Lambert    schedule 14.07.2013

Элементы папок — это способ представления пути независимо от особенностей ОС. Это важно, если вы планируете создавать приложения, например, для Windows и Mac или Linux.

В Windows типичный путь выражается как

C:\Users\MitchMatch\Desktop\myPicture.png

В Mac OS X или Linux тот же путь будет:

C:/Users/MitchMatch/Desktop/myPicture.png

FolderItem также предоставляет способы прямого доступа к рабочему столу:

Dim f as folderItem = SpecialFolder.Desktop.Child("myPicture.png")

Чтобы скопировать файл, вы можете использовать встроенный в Xojo метод FolderItem.CopyFileTo или оболочку в систему и использовать командную строку.

Например, в Windows вы можете использовать

Dim s as new shell
s.execute("Copy c:\Users\MitchMatch\Desktop\myPicture.png c:\Users\MitchMatch\Pictures")

В Mac OS X и Linux это команда CP. Обратите внимание, что в отличие от команды Xojo CopyFileTo системная функция может копировать весь каталог.

person Mitch Match    schedule 16.09.2015