C#: предварительное ожидание к началу файла

IE6? Meh. У Вас парни есть он легкий ! Вы никогда не должны были делать разметку CSS в Netscape 4 (не разрушая весь браузер)? Вы никогда не должны были писать для браузеров устройства, которые не поддерживают таблицы? Вы никогда не должны были писать для [1 117] IE Мобильный телефон ?

  • нет никакой поддержки присвоенных JavaScript обработчиков событий; можно только записать обработчик событий посредством установки “onclick = "somestring" ” в innerHTML;

  • самые основные свойства DOM Level 1 (например, nodeName, тип узла, nodeValue, firstChild, lastChild, nextSibling, previousSibling, данные, значение, HTMLElement.getElementsByTagName, все члены HTMLTableElement, большинство членов CSSStyleDeclaration) просто не существуют;

  • большинство свойств макета CSS не работает; многие просто свойства CSS как ‘width’ не работают над некоторыми элементами, такими как поля формы;

  • установка многих других свойств CSS на элементах как таблицы и полевые причины формы мгновенный браузер зависает, который, так как Windows Mobile не имеет никакого встроенного диспетчера задач, средств, что у Вас есть к мягкой перезагрузке устройство;

  • , о, и помещение чего-либо кроме текста в < кнопка> является insta-катастрофическим-отказом также;

  • огромные блоки основных методов JavaScript и Уровня “DOM 0” методы, возвращающиеся до Netscape 2 (!), отсутствуют.

И это - самый актуальный выпуск ведущего браузера Windows Mobile Microsoft в 2009.

Несомненно, это поддерживает XMLHttpRequest, но код Ajax написания на браузере, поддержка CSS и сценария которого является меньше, чем IE3 (!), является причудливо шизофреником, как Вы работаете со странной амальгамой технологий 21-го века и 19-го века.

я не рекомендовал бы это.

35
задан jmoreno 22 October 2011 в 03:19
поделиться

3 ответа

Добавление в начало файла (добавление в начало, а не добавление) обычно не поддерживается. Ваш вариант №1 в порядке. Если вы не можете записать временный файл, вы можете вытащить весь файл в память, предварительно добавить свои данные в массив байтов, а затем перезаписать его обратно (это реально возможно только в том случае, если ваши файлы маленькие и вам не нужно иметь кучу памяти сразу, потому что добавить массив без копии тоже не всегда легко).

13
ответ дан 27 November 2019 в 07:13
поделиться

Вы сможете сделать это, не открывая новый файл. Используйте следующий метод File:

public static FileStream Open(
    string path,
    FileMode mode,
    FileAccess access
)

Обязательно укажите FileAccess.ReadWrite.

Используя FileStream, возвращенный из File.Open, прочтите все существующие данные в память. Затем сбросьте указатель на начало файла, запишите новые данные, затем запишите существующие данные.

(Если файл большой и / или вы подозреваете, что используете слишком много памяти, вы можете сделать это, не имея читать весь файл в память, но реализация этого оставлена ​​читателю в качестве упражнения.)

1
ответ дан 27 November 2019 в 07:13
поделиться

Я думаю, что лучший способ - создать временный файл. Добавьте свой текст, затем прочтите содержимое исходного файла, добавив его во временный файл. Затем вы можете перезаписать оригинал временным файлом.

2
ответ дан 27 November 2019 в 07:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: