PDA

Просмотр полной версии : C# | Переместить файл с проекта


Hideme Flow
29.07.2022, 10:53
Можно как-то переместить файл с проекта по указанной дериктории (D:\)?

https://forum.antichat.xyz/attachments/28100232/

Пробовал вот так:

C#:






File
.
Move
(
"/Files/Untitled-1.xml"
,
$
"D:\Untitled-1.xml"
)
;




Ошибка
https://forum.antichat.xyz/attachments/28100232/

F0RQU1N and
29.07.2022, 11:29
Через ресурсы можешь/байты файла в массив закинуть и создать где тебе над

Snoopcheg
29.07.2022, 12:35
Если хочешь перемещать его таким образом, используй полный путь к файлу

Hideme Flow
29.07.2022, 20:11
Если хочешь перемещать его таким образом, используй полный путь к файлу


этот файл при компиляции находится в самом exe

Snoopcheg
29.07.2022, 20:32
этот файл при компиляции находится в самом exe


Значит не перемещай, а создавай его в нужном месте

Hideme Flow
01.08.2022, 10:40
Значит не перемещай, а создавай его в нужном месте


а как я должен создать файл типа .dll и .dat? Я их прочитать не могу

Snoopcheg
01.08.2022, 11:17
а как я должен создать файл типа .dll и .dat? Я их прочитать не могу


Ты же вроде хотел перемещать xml файл, не? Для шарпа есть классы для создания xml файлов

Hideme Flow
01.08.2022, 11:19
Ты же вроде хотел перемещать xml файл, не? Для шарпа есть классы для создания xml файлов


не только xml, ещё dll и asi

F0RQU1N and
01.08.2022, 11:21
Я их прочитать не могу


почему

Hideme Flow
01.08.2022, 11:35
почему


Ну потому-что я хочу что-бы в итоге был 1 exe файл, без доп. папок. А если в свойствах файла "Действие при зборке" не будет равно "AdditionalFiles", то этот файл не добавится в exe файл (Тоесть его прочитать будет невозможно так как его просто не будет)

Snoopcheg
01.08.2022, 12:36
C#:






var
assembly
=
Assembly
.
GetExecutingAssembly
(
)
;
var
resourceName
=
"ProjectName.Folder.filename"
;
//тут полный путь к файлу внутри проекта
FileStream
?
fs
=
new
FileStream
(
"yourpath"
,
FileMode
.
Create
)
;
using
(
Stream
stream
=
assembly
.
GetManifestResourceStream
(
resourceName
)
)
{
stream
.
CopyTo
(
fs
)
;
}
fs
.
Close
(
)
;




Вроде робит, только нужно обернуть в try catch

Действия при сборке у меня: внедренный ресурс(Embedded resource)

Hideme Flow
01.08.2022, 17:04
C#:






var
assembly
=
Assembly
.
GetExecutingAssembly
(
)
;
var
resourceName
=
"ProjectName.Folder.filename"
;
//тут полный путь к файлу внутри проекта
FileStream
?
fs
=
new
FileStream
(
"yourpath"
,
FileMode
.
Create
)
;
using
(
Stream
stream
=
assembly
.
GetManifestResourceStream
(
resourceName
)
)
{
stream
.
CopyTo
(
fs
)
;
}
fs
.
Close
(
)
;




Вроде робит, только нужно обернуть в try catch
Действия при сборке у меня: внедренный ресурс(Embedded resource)


а как получить список всех файлов в директории (Stream stream = assembly.GetManifestResourceStream(resourceName)) ?

Snoopcheg
01.08.2022, 17:15
а как получить список всех файлов в директории (Stream stream = assembly.GetManifestResourceStream(resourceName)) ?


как вариант хранить список в массиве или каком-то xml файле, и при надобности обращаться к нему

UPD: Можно использовать это, но он будет получать совершенно все ресурсы проекта. Если использовать, придётся проверять та ли папка:







C#:






string
[
]
resourceNames
=
assembly
.
GetManifestResourceNames
(
)
;